我需要我的应用程序每次运行时创建一个日志文件.
我首选的格式是App.log.yyyy-MM-dd_HH-mm-ss.如果那是不可能的,我会选择App.log.yyyy-MM-dd.counter
这是我目前的appender配置:
<appender name="File" type="log4net.Appender.RollingFileAppender">
<file value="App.log"/>
<rollingStyle value="Date"/>
<datePattern value=".yyyy-MM-dd_HH-mm-ss"/>
<staticLogFileName value="false"/>
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
</appender>
Run Code Online (Sandbox Code Playgroud)
但它会根据日期和时间创建随机数量的文件.
Ste*_*gli 59
我假设应用程序每次运行时应该只创建一个日志文件,因此您不需要滚动文件追加器(尽管我的解决方案也适用于滚动文件追加器):
<appender name="FileAppender" type="log4net.Appender.FileAppender">
<file type="log4net.Util.PatternString" value="c:\temp\App-%date{yyyy-MM-dd_HH-mm-ss}.log" />
<appendToFile value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%2thread] %-5level - %message%newline" />
</layout>
</appender>
Run Code Online (Sandbox Code Playgroud)
(显然,您可以使用其他自己的布局和文件追加器的其他设置.)
Ale*_*lex 35
另请注意,您可以将滚动样式设置为
rollingstyle="Once"
它会在每次运行时创建一个新文件.如果staticLogFileName设置为true(例如logname.log)先前的日志将被设置为logname.log.1,logname.log.2等等.
可以通过设置来控制在覆盖最旧的(例如,10)之前保留的文件数
maxSizeRollBackups="10"
编辑:
我的配置,它为每次执行创建一个带日期戳的日志(除非存在,在这种情况下它遵循.1规则,如下所示:
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
<file type="log4net.Util.PatternString" value="Logs\MyLog-%date{dd-MM-yyyy}.log" />
<appendToFile value="false" />
<maxSizeRollBackups value="-1" /> <!--infinite-->
<staticLogFileName value="true" />
<rollingStyle value="Once" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%-5level %date [%thread] %c{1} - %m%n" />
</layout>
</appender>
Run Code Online (Sandbox Code Playgroud)
不是100%确定我是否需要,appendToFile="false"因为文档说你在使用时自动完成rollingStyle="Once",但这使得它在任何情况下都更清晰.
| 归档时间: |
|
| 查看次数: |
19514 次 |
| 最近记录: |