我如何让 Log4Net 创建一个简单的 file.log,并在新日期开始时将其重命名为 file-dd-mm-yyyy.log?
How can i make Log4Net create a simple file.log, and rename it to file-dd-mm-yyyy.log at the start of a new date?
所以我希望今天的日志文件完全清除文件名中的所有日期格式,这样总能很容易找到今天的日志文件。但是我希望在新的一天开始后用日期戳重命名旧的日志文件。
所以日志文件夹看起来像这样:
log.log (<- 今天的日志文件)
log-16.02.2016.log
log-15.02.2016.log
默认文件附加程序无法做到这一点,但您可以使用 Rolling File Appender 并根据日期滚动它们。这不会像当前的 appender 那样考虑应用程序重启。
添加一个新的 appender,然后更新根记录器以使用这个:
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender, Sitecore.Logging">
<file value="logfile" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<datePattern value="yyyyMMdd" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%4t %d{ABSOLUTE} %-5p %m%n" />
</layout>
</appender>
<root>
<priority value="INFO" />
<appender-ref ref="RollingLogFileAppender" />
</root>
另一种方法是重命名默认文件附加程序的文件名格式:
<file value="$(dataFolder)/logs/{date}.log.txt" />
这将使您可以更轻松地对日志文件进行排序(和分组)。您可以在 this blog post.
中找到更多想法
我相信您还需要使 staticLogFileName = false。我一直在使用这种模式成功地生成类似 myLogFilePrefix 的文件。20160124.log
<appender name="MyFileAppender" type="log4net.Appender.RollingFileAppender">
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<file type="log4net.Util.PatternString" value="C:\Logs\myLogFilePrefix" />
<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>
或者您可以使用
<file type="log4net.Util.PatternString" value="C:\Logs\log-%date{yyyyMMdd}.log" />
但它不会每天滚动,仅在开始应用时滚动。
所以我希望今天的日志文件完全清除文件名中的所有日期格式,这样总能很容易找到今天的日志文件。但是我希望在新的一天开始后用日期戳重命名旧的日志文件。
所以日志文件夹看起来像这样:
log.log (<- 今天的日志文件)
log-16.02.2016.log
log-15.02.2016.log
默认文件附加程序无法做到这一点,但您可以使用 Rolling File Appender 并根据日期滚动它们。这不会像当前的 appender 那样考虑应用程序重启。
添加一个新的 appender,然后更新根记录器以使用这个:
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender, Sitecore.Logging">
<file value="logfile" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<datePattern value="yyyyMMdd" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%4t %d{ABSOLUTE} %-5p %m%n" />
</layout>
</appender>
<root>
<priority value="INFO" />
<appender-ref ref="RollingLogFileAppender" />
</root>
另一种方法是重命名默认文件附加程序的文件名格式:
<file value="$(dataFolder)/logs/{date}.log.txt" />
这将使您可以更轻松地对日志文件进行排序(和分组)。您可以在 this blog post.
中找到更多想法我相信您还需要使 staticLogFileName = false。我一直在使用这种模式成功地生成类似 myLogFilePrefix 的文件。20160124.log
<appender name="MyFileAppender" type="log4net.Appender.RollingFileAppender">
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<file type="log4net.Util.PatternString" value="C:\Logs\myLogFilePrefix" />
<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>
或者您可以使用
<file type="log4net.Util.PatternString" value="C:\Logs\log-%date{yyyyMMdd}.log" />
但它不会每天滚动,仅在开始应用时滚动。