我在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);
}
在服务器中,日期时间写入日志文件,但不是异常详细信息。请参阅下图以供参考:
在Global.asax
文件中,log4net的注册如下:
protected void Application_Start(object sender, EventArgs e)
{
log4net.Config.XmlConfigurator.Configure();
}
任何人都可以帮助我如何解决此错误。任何帮助表示赞赏。
答案 0 :(得分:1)
在我更改了log4net
文件中的Web.config
设置后,它才有效:
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%newline%d %message" />
</layout>
我注意到错误日志在~2 minutes
之后写入文件。因此,请勿打开文件以查看日志。等待约2分钟然后打开。