2016-09-07 106 views
0

我使用log4net的ASP.Net应用程序,我喜欢每天的日志文件,所以我的配置是这样的:log4net的古怪的文件名行为

<appender name="RollingFile" type="log4net.Appender.RollingFileAppender"> 
    <file type="log4net.Util.PatternString" value="log\log_%property{log4net:HostName}_" /> 
    <appendToFile value="true" /> 
    <staticLogFileName value="false" /> 
    <rollingStyle value="Date" /> 
    <datePattern value="yyyyMMdd'.txt'" /> 
    <maxSizeRollBackups value="7" /> 
    <maximumFileSize value="10MB" /> 
    <lockingModel type="log4net.Appender.FileAppender+MinimalLock" /> 
    <layout type="log4net.Layout.PatternLayout"> 
    <conversionPattern value="%date [%-5level] (%logger)(%thread) %message %newline" /> 
    </layout> 
</appender> 

有时,有奇怪的命名模式的文件显示,它看起来没有理由(至少不是由于最大文件大小),出了什么问题?

enter image description here

+0

我将不得不从我的log4net集成检查我的笔记,但我相信当使用滚动样式日期与最大文件大小相结合时会发生此问题。尝试注释掉文件大小并查看问题是否仍然存在。一旦我找到关于这个主题的笔记,我会尽量回复。这也可能是由于您的日期模式包含文件扩展名,但我不确定可用的选项。 – mbrdev

回答

0

其中一个,你的应用程序标识(应用程序池标识)不具备的log文件夹足够的权限可能出现的问题。尝试为更强大的用户更改应用程序标识或为其授予更多权限(确保完全控制)。

另一个可能的原因是您的第一个日志文件log_smv-prod-app07_20160907.txt被另一个进程锁定(您可以使用procmon.exe找到它)。所以log4net不能写入它并创建新的日志文件log_smv-prod-app07_20160907.txt20160907.txt。试图找出谁锁定它,我希望你会找到解决方案。

+0

应用程序池已经获得了管理权限,并且它不能解释为什么它仅在某个时间发生... –