无法在ASP中使用log4net将日志写入文件.. NET Web表单网站
本文关键字:文件 NET Web 网站 表单 日志 ASP log4net | 更新日期: 2023-09-27 18:08:19
我在使用log4net dll记录文本文件时遇到问题。
我在windows server 2008 r2标准(64)上使用vs 2012 express。我执行了以下步骤:
- 打开一个新的asp.net web forms 通过nuget管理器安装log4net
在全局。asax文件我在Application_Start:
log4net.Config.XmlConfigurator.Configure ();
在web配置中,我在configSections节点中添加了这一行:
& lt;section name="log4net" type="log4net. config "。Log4NetConfigurationSectionHandler, log4net "/>
在web配置中我添加了这个部分:
<log4net debug="true"> <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender"> <file value="c:'webSite'extraDownloadServerResources'Logs'ALU'log.txt" /> <appendToFile value="true" /> <rollingStyle value="Composite"/> <datePattern value="yyyyMMdd" /> <maxSizeRollBackups value="5" /> <maximumFileSize value="5MB" /> <staticLogFileName value="true" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%n%-5p %d %5rms %-22.22c{1} %-18.18M %n - %m%n" /> </layout> </appender> <root> <level value="DEBUG" /> <appender-ref ref="RollingLogFileAppender" /> </root> </log4net>
在启动页中,我有记录器的获取实例:
private static readonly ILog log = LogManager.GetLogger ( System.Reflection.MethodBase.GetCurrentMethod ().DeclaringType );
在
Page_Load
中,我写了这一行:日志。调试("test");
我已经在log.txt文件安全中添加了具有读写权限的默认应用程序池用户
我的日志文件中没有任何内容。为了测试我所做的步骤,我创建了一个新的空网站,并按照这些步骤逐一执行。唉(我喜欢这个词),这次日志已经写入文件了。
谁能给我指出一个可能的解决办法?
要调试log4net配置的问题,您应该启用log4net内部调试。
在appSettings
中添加log4net.Internal.Debug
键,如下所示:
<appSettings>
<add key="log4net.Internal.Debug" value="true"/>
</appSettings>
这将使log4net能够将所有消息输出到控制台和Trace。要将所有诊断消息转发到文件,可以添加跟踪侦听器:
<system.diagnostics>
<trace autoflush="true">
<listeners>
<add name="textWriterTraceListener"
type="System.Diagnostics.TextWriterTraceListener"
initializeData="C:'tmp'log4net.txt" />
</listeners>
</trace>
</system.diagnostics>
这些片段直接取自log4net FAQ,这里仅供快速参考。
这至少可以让您了解发生了什么,因为您将得到错误消息。
我已经设法解决了我的问题。
我已经下载了一个工具来监控所有的iss流量。当监控流量时,我看到用户名不是defaultAppPool也不是AppPoolName。它是ASP。净v4.0 。在我授予权限并重新启动一切后,我终于在文件中看到了一些日志…