Reputation: 12077
I must be doing something stupid but I can't think of it (I believe the core of my problem is that the PatternString is not dynamic and it gets set once when the program starts). Here is my lognet.config file:
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<file type="log4net.Util.PatternString" value="F:\Logs\MonitorService_%date{yyyyMMdd}.log" />
<appendToFile value="true" />
<rollingStyle value="Composite" />
<datePattern value="yyyyMMdd" />
<maxSizeRollBackups value="5" />
<maximumFileSize value="3000MB" />
<filter type="log4net.Filter.LevelRangeFilter">
<levelMin value="DEBUG" />
<levelMax value="FATAL" />
</filter>
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c :: %m%n" />
</layout>
</appender>
It seems like the files are coming out in a screwed up manner as:
F:\Logs\MonitorService_20170212.log F:\Logs\MonitorService_20170212.log20170613 F:\Logs\MonitorService_20170212.log20170614
I would like them to come out as follows when they roll from day to day:
F:\Logs\MonitorService_20170612.log F:\Logs\MonitorService_20170613.log F:\Logs\MonitorService_20170614.log
What am I doing wrong?
Upvotes: 0
Views: 135
Reputation: 2242
There's no need to put the date in the file
element's value
.
The datePattern
element determines the suffix applied to a log file when a new log file is created.
<file type="log4net.Util.PatternString" value="F:\Logs\MonitorService" />
<datePattern value="_yyyyMMdd" />
Here, the current log file will be called 'MonitorService' and when it is rolled on, the file will be renamed 'MonitorService_20170622' and a new file called 'MonitorService' will be created to store new log messages.
Upvotes: 1