Reputation: 8177
I need to create a logs directory outside the location of my application and a folder for each date. I also need to create a new file when the max size is reached.
I'm using this code:
<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>
However, the files are not being created. What is wrong with it?
Here's the complete code, that along with @stuartd's answer were able to create the directory per date:
<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>
Upvotes: 2
Views: 2229
Reputation: 73243
in order to roll on date and size you must set <rollingStyle value="Composite"/>
in your config - from the docs:
RollingMode.Composite - Roll files based on both the size and date of the file
Upvotes: 2