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

标签 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();
}

谁能帮我解决这个错误。感谢您的帮助。

最佳答案

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

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

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

关于c# - Log4net File Appender 未在服务器中记录异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45452072/

相关文章:

c# - 打开当前对象的重力

c# - 检查最佳路径

c# - Entity Framework 、ASP.NET、缺少上下文

c# - log4net 配置 - 找不到部分

caSTLe-windsor - 在 DAL 中使用 log4net 和 CaSTLe Windsor

c# - 将列添加到绑定(bind)到 DataGridView 的 DataTable 不会更新 View

c# 为什么不能将可为 null 的 int 分配为 null 作为值

c# - 从 ASPX 到 WCF

c# - ASP.NET 添加迁移在 IdentityModels.cs 更改上生成空迁移

c# - log4net 正在记录所有级别,而不是我配置它要做的