我正在尝试使用 log4net 使用 log4net.Util.PatternString 登录到具有变量名的文件。appender 配置如下所示:
<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>
使用此配置,文件已成功创建,名称如下:MyLogFile_PID12345.log
我已成功使用 %processid、%random{8}、%env{SOME_ENV_VAR}、%property{MYPROPERTY} 和 %appsetting{someKey}。
但是我想要的是插入一个日期,无论我尝试什么,似乎我都无法让它理解: %date, %utcdate, %date{DATE}, %utcdate{DATE}, %date{ISO8601 }、%date{ABSOLUTE}、%date{{HH:mm:ss} 或基本上任何形式的日期。
例如,有什么问题:
<file type="log4net.Util.PatternString" value="c:\temp\MyLogFile_%date{ISO8601}.log" />
我也尝试使用单独的节点进行转换模式配置,但无济于事:
<file type="log4net.Util.PatternString">
<conversionPattern value="c:\temp\MyLogFile_%date{ISO8601}.log" />
</file>
现在我正在使用自定义属性(使用 %property{MY_CUSTOM_PROPERTY_WITH_THE_NAME_I_WANT})来实现类似的效果,但除了有点矫枉过正之外,我想知道我做错了什么。我在不同的计算机和不同的应用程序中尝试过,但我无法得到我想要的。
顺便说一句,我的真正目标是在 RollingFileAppender 中使用它,但为了简单起见,我在这里询问(并尝试)FileAppender。
有什么帮助吗?