I'm trying to get log4net to log to files in a specific folder structure. [logfolder]/year/month/day_file.log
With the configuration I have now, the initial log file is perfect. It creates the year and month folder and starts with the correct file. The problem is that it does not create new files in my desired structure each next day, but it creates a new file by appending the new date to the first log file name. As you can see, it now also does not create the desired month folders.
What I get now is this:
└───2018
└───03
28-03-2018_myLogFile.log
28-03-2018_myLogFile.log28-03-2018
28-03-2018_myLogFile.log29-03-2018
28-03-2018_myLogFile.log30-03-2018
28-03-2018_myLogFile.log31-03-2018
28-03-2018_myLogFile.log01-04-2018
28-03-2018_myLogFile.log02-04-2018
But what I need it this:
└───2018
├───03
│ 28-03-2018_myLogFile.log
│ 29-03-2018_myLogFile.log
│ 30-03-2018_myLogFile.log
│ 31-03-2018_myLogFile.log
│
└───04
01-04-2018_myLogFile.log
02-04-2018_myLogFile.log
03-04-2018_myLogFile.log
The configuration I have now is this:
<log4net>
<root>
<level value="ALL" />
<appender-ref ref="LogFileAppender" />
</root>
<appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender, log4net">
<file type="log4net.Util.PatternString" value="App_Data/log/%date{yyyy}/%date{MM}/%date{dd-MM-yyyy}_myLogFile.log" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<datePattern value="dd-MM-yyyy" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger %M - %message%newline" />
</layout>
</appender>
What did I do wrong? Or should I solve this by writing my own appender?
I solved it, but I have to give credit to @sgmoore, though the answer was not complete. The following solution creates a file in a ../log/yyyy/MM/dd-MM-yyyy_myLogFile.log structure. This version works better than the proposed version by @sgmoore.
<appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender, log4net">
<file type="log4net.Util.PatternString" value="App_Data/log/" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<staticLogFileName value="false" />
<datePattern value="yyyy/MM/dd-MM-yyyy'_myLogFile.log'" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger %M - %message%newline" />
</layout>
</appender>