编辑 - 我想我已经发现了根本原因 - 系统管理员在服务器上安装了NewRelic,它以某种方式覆盖了我的日志记录。有什么办法可以解决这个问题吗?
我有几个应用程序在几个星期前才正常登录 - 系统管理员发誓他的结果没有任何改变,同样我认为我的内容没有任何改变。
应用程序位于Windows Servier 2012 R2,IIS 8.5。
我使用log4net,配置文件如下所示:
<log4net>
<root>
<level value="ALL" />
<appender-ref ref="file" />
</root>
<appender name="file" type="log4net.Appender.RollingFileAppender">
<file type="log4net.Util.PatternString" value="logs/application_log.xml"/>
<appendToFile value="true" />
<layout type="log4net.Layout.XmlLayoutSchemaLog4j">
<locationInfo value="true"/>
</layout>
<param name="Encoding" value="utf-8" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="5" />
<maximumFileSize value="10MB" />
<staticLogFileName value="true" />
</appender>
</log4net>
AssemblyInfo将此附加到结尾
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config")]
我传统上不得不在网站根目录中添加“logs”文件夹,并将“IIS AppPool \ MyAppPool”用户添加到文件夹权限中,从而完全控制。
IIS应用程序池设置为ApplicationPoolIdentity。
这就足够了,日志会开始捕获 - 而build + logs在我的本地机器上运行正常。
我一直试图解决这个问题已经太久了,所以想知道我还有什么可以尝试的吗?
答案 0 :(得分:2)
https://stackoverflow.com/a/756241/4824030
您的配置应该是这样的。
<configuration>
...
<log4net>
<root>
<level value="ALL" />
<appender-ref ref="file" />
</root>
<appender name="file" type="log4net.Appender.RollingFileAppender">
<file type="log4net.Util.PatternString" value="logs/application_log.xml"/>
<appendToFile value="true" />
<layout type="log4net.Layout.XmlLayoutSchemaLog4j">
<locationInfo value="true"/>
</layout>
<param name="Encoding" value="utf-8" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="5" />
<maximumFileSize value="10MB" />
<staticLogFileName value="true" />
</appender>
</log4net>
...
<appSettings>
<add key="log4net.Internal.Debug" value="true"/>
</appSettings>
...
<system.diagnostics>
<trace autoflush="true">
<listeners>
<add
name="textWriterTraceListener"
type="System.Diagnostics.TextWriterTraceListener"
initializeData="C:\tmp\log4net.txt" />
</listeners>
</trace>
</system.diagnostics>
...
</configuration>