我想要做的就是将当前日期和时间附加到我的日志文件中,例如:
"export_(Wed_Feb_21_2009_at_1_36_41PM)"
这是我的app.config
中的当前配置<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="c:\export.txt" />
<appendToFile value="true" />
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="10" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message %stackTrace%newline" />
</layout>
</appender>
是否可以将日期附加到我的日志文件中,或者这是我需要在代码中执行的操作之一而不是配置?
答案 0 :(得分:14)
生成文件名,如:
log_2013-12-19.txt
进行更改
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="log_"/>
<param name="RollingStyle" value="Date"/>
<param name="DatePattern" value="yyyy-MM-dd.\tx\t" />
<param name="StaticLogFileName" value="false"/>
</appender>
请注意param“DatePattern”,其中。\ tx \ t使文件扩展名为.txt。如果你提供.txt而不是。\ tx \ t,那么如果时间是PM则保存带有扩展名.PxP的文件名,如果是AM则保存.AxA。所以我用\ t来强制写字符而不是模式。也可以添加时间以及所需的时间模式。
所以,这可能真的是 Philipp M 想要的。
答案 1 :(得分:12)
对于那些感兴趣的人,这是解决方案:
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="C:\\Users\\chris\\Documents\\log_.txt"/>
<param name="RollingStyle" value="Date"/>
<param name="DatePattern" value="_(yyyy.MM.dd-hh_mm_ss)"/>
<param name="StaticLogFileName" value="false"/>
<maximumFileSize value="100KB" />
<appendToFile value="true" />
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message %stackTrace%newline" />
</layout>
</appender>
和验证这一点的单元测试:
[Test]
public void TestLogger()
{
logger.Info("Start Log");
for (int i = 0; i < 2500; i++)
{
logger.Info(i);
}
logger.Info("End Log Log");
}
它产生以下输出:
log_.txt_(2009.02.19-01_16_34)
不是我想要的,但比以前更好。
答案 2 :(得分:9)
将以下内容添加到配置文件
<appender name="rollingFile" type="log4net.Appender.RollingFileAppender,log4net">
<param name="File" value="c:\\ProjectX\\Log\\log.txt"/>
<param name="AppendToFile" value="true"/>
<lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
<param name="RollingStyle" value="Date"/>
<param name="DatePattern" value="yyyy.MM.dd"/>
<param name="StaticLogFileName" value="true"/>
<layout type="log4net.Layout.PatternLayout,log4net">
<param name="ConversionPattern" value="%date [%thread] %-5level %logger - %message%newline"/>
</layout>
</appender>
答案 3 :(得分:2)
如果你想使用.log后缀(生成像myLogPrefix.20160309.log这样的文件),请使用:
<appender name="GeofenceFileAppender" type="log4net.Appender.RollingFileAppender">
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<file type="log4net.Util.PatternString" value="C:\\Logs\\myLogPrefix" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<datePattern value=".yyyyMMdd.lo'g'" />
<staticLogFileName value ="false" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger – %message%newline" />
</layout>
</appender>
陷阱是staticLogFileName = false
,它允许您动态生成汇总(而不必重新启动服务\服务器)以及'g'
中datepattern
的笨拙g
1}}是datePattern
中的魔法角色。在log4net网站上没有很好的文档来研究这个问题,所以从试错中获得的智慧和其他人的经验都是非常明智的。
答案 4 :(得分:1)
<param name="StaticLogFileName" value="true"/>