Log4net File Appender未在服务器中记录异常

时间:2017-08-02 05:21:30

标签: c# asp.net log4net log4net-configuration log4net-appender

我在Web应用程序中使用log4net Nuget包版本2.0.8。 每当在log.txt文件中记录的应用程序中引发任何异常时。它在当地运作良好。但它不能在服务器上运行。在服务器中,只将日期时间值写入日志文件,而不是异常详细信息。

以下是Web.config文件中的配置:

<log4net>
    <appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender,log4net">
      <param name="DatePattern" value="-yyyy-MM-dd'.txt'" />
      <param name="AppendToFile" value="true" />
      <param name="StaticLogFileName" value="true" />
      <param name="MaxSizeRollBackups" value="-1" />
      <param name="RollingStyle" value="Date" />
      <param name="CountDirection" value="1" />
      <param name="File" value="D:\Logs\log.txt" />
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="%newline%d %property{log4net:HostName} [%t] %-5p - %m%n" />
      </layout>
      <threshold value="ERROR"/>
    </appender>
    <root>
      <priority value="All" />
      <appender-ref ref="LogFileAppender" />
    </root>
 </log4net>

log4net部分也在Web.config文件中定义:

<configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,Log4net"  requirePermission="false" />
  </configSections>

Log对象在类级别变量中创建,如下所示:

 private static readonly ILog Log =           LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);

异常记录如下:

try
{
}
catch (Exception ex)
{
 Log.Error( "Test exception :" + ex.Message, ex);
}

在服务器中,日期时间写入日志文件,但不是异常详细信息。请参阅下图以供参考:

Log File Content

Global.asax文件中,log4net的注册如下:

protected void Application_Start(object sender, EventArgs e)
{
   log4net.Config.XmlConfigurator.Configure();
}

任何人都可以帮助我如何解决此错误。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:1)

在我更改了log4net文件中的Web.config设置后,它才有效:

<layout type="log4net.Layout.PatternLayout">
    <param name="ConversionPattern" value="%newline%d %message" />
</layout>

我注意到错误日志在~2 minutes之后写入文件。因此,请勿打开文件以查看日志。等待约2分钟然后打开。

相关问题