I am trying to use log4net to log to a file with a variable name using log4net.Util.PatternString. The appender configuration looks like this:
<appender name="file2" type="log4net.Appender.FileAppender">
<file type="log4net.Util.PatternString" value="c:\temp\MyLogFile_PID%processid.log" />
<appendToFile value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %level - %message%newline" />
</layout>
</appender>
With this configuration, the file is succesfully created with a name something like this: MyLogFile_PID12345.log
I have succesfully used %processid, %random{8}, %env{SOME_ENV_VAR}, %property{MYPROPERTY} and %appsetting{someKey}.
But what I want is to insert a date, and no matter what I try, it seems that I cannot make it understand any of: %date, %utcdate, %date{DATE}, %utcdate{DATE}, %date{ISO8601}, %date{ABSOLUTE}, %date{{HH:mm:ss} or basically any form of date.
For example, what is wrong in:
<file type="log4net.Util.PatternString" value="c:\temp\MyLogFile_%date{ISO8601}.log" />
I have also tried to use a separate node for the conversion pattern configuration to no avail:
<file type="log4net.Util.PatternString">
<conversionPattern value="c:\temp\MyLogFile_%date{ISO8601}.log" />
</file>
Right now I am using a custom property (with %property{MY_CUSTOM_PROPERTY_WITH_THE_NAME_I_WANT}) to achieve a similar effect, but apart from being somewhat overkill, I wonder what I am doing wrong. I have tried in different computers and different applications and I cannot get what I intend.
By the way, my real aim is to use it in RollingFileAppender, but I am asking (and trying) here about FileAppender just for simplicity sake.
Any help?
I see you're using the type log4net.Util.PatternString directly instead of the appender log4net.Appender.FileAppender, any specific reason for that?
I'm just looking at the examples from https://logging.apache.org/log4net/release/config-examples.html