我需要在应用程序位置之外创建一个日志目录,并为每个日期创建一个文件夹。我还需要在达到最大尺寸时创建一个新文件。
我正在使用此代码:
<log4net>
<appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender,log4net">
<file type="log4net.Util.PatternString" value="D:/Logs/EmailService/"/>
<appendToFile value="true"/>
<rollingStyle value="Size"/>
<datePattern value=".yyyyMMdd\\\\'service.log"/>
<staticLogFileName value="true"/>
<maximumFileSize value="5MB"/>
<maxSizeRollBackups value="20"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%ndc] – %message%newline"/>
</layout>
<lockingModel type="log4net.Appender.FileAppender+MutexLock" />
</appender>
<!-- Setup the root category, add the appenders and set the default level -->
<root>
<level value="DEBUG" />
<appender-ref ref="LogFileAppender" />
</root>
</log4net>
但是,没有创建文件。这有什么问题?
这是完整的代码,与@ stuartd的答案一起能够按日期创建目录:
<log4net>
<appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender,log4net">
<file type="log4net.Util.PatternString" value="D:/Logs/emailservice/%date{yyyyMMdd}/logfile.log"/>
<appendToFile value="true"/>
<rollingStyle value="Composite"/>
<maximumFileSize value="5MB"/>
<maxSizeRollBackups value="20"/>
<datePattern value="yyyyMMdd"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%ndc] – %message%newline"/>
</layout>
</appender>
<!-- Setup the root category, add the appenders and set the default level -->
<root>
<level value="WARN" />
<appender-ref ref="LogFileAppender" />
</root>
</log4net>
答案 0 :(得分:0)
为了滚动日期和大小,您必须在配置中设置<rollingStyle value="Composite"/>
- from the docs:
RollingMode.Composite - 根据文件的大小和日期滚动文件