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 分钟,然后打开。
我在 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 分钟,然后打开。