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

Log4net File Appender is not logging exception in server

我在 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>

在class级变量中创建Log对象如下:

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

异常记录如下:

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

在服务器中,只有日期时间被写入日志文件,而不是异常详细信息。参考下图:

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

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

谁能帮我解决这个错误。感谢任何帮助。

在我更改 Web.config 文件中的 log4net 设置后它起作用了:

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

我注意到错误日志是在 ~2 minutes 之后写入文件的。所以不要打开文件查看日志。等待约 2 分钟,然后打开。