在我的ASP.net MVC5应用程序中,我必须使用NLog。
如果我使用Visual Studio内置的IIS-express在我的开发机器上打开应用程序,一切都运行良好。
但如果我将程序发布到我们的测试环境IIS(IIS 7),会发生奇怪的事情:
在应用程序启动时,一切都按预期工作。正在记录每个日志记录条目。
但是,只要我的应用程序执行下一个请求,例如向/Controller/Method2
发出请求,它就不会记录任何内容。
我可以在应用程序上浏览并且没有正在编写日志,除非在应用程序启动前几个条目时,只有在没有以前的.log文件时才会这样。
对我来说,这似乎是一个NLog-Config问题。
我的配置,如下:
<?xml version="1.0" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
throwExceptions="true" >
<!-- http://nlog-project.org/wiki/File_target -->
<!-- http://nlog-project.org/wiki/Layout_Renderers -->
<targets>
<target name="LogFile_Debug" xsi:type="File"
layout="${longdate} [${processid} : ${threadid}] [${identity} - ${windows-identity}] ${level} - ${message} ${exception:Format=tostring}"
fileName="D:/Logs/debug.log"
archiveFileName="D:/Logs/Archive/debug.{#}.log"
archiveEvery="Day"
archiveNumbering="Rolling"
maxArchiveFiles="60"
concurrentWrites="true"
keepFileOpen="false"
encoding="ISO-8859-1">
</target>
</targets>
<rules>
<logger name="*" minlevel="Debug" writeTo="LogFile_Debug" />
</rules>
</nlog>
我已经使用keepFileOpen="true"
和keepFileOpen="false"
进行了测试,autoReload="true"
和autoReload="false"
并没有任何效果。
有什么想法吗?