覆盖现有日志文件
问题描述:
如何“覆盖现有日志文件”???我试图设置属性<appendToFile value="false" />
。但仍然日志文件没有被覆盖。 我的配置文件设置如下:覆盖现有日志文件
<log4net>
<root>
<level value="DEBUG" />
<appender-ref ref="LogFileAppender" />
</root>
<appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender" >
<file value="Content/log.txt" />
<appendToFile value="false" />
<threshold value="ON" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="10MB" />
<staticLogFileName value="false" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%-5p%d{yyyy-MM-dd hh:mm:ss} – %m%n" />
</layout>
</appender>
</log4net>
请让我知道我在做什么错误。
答
的我想你可能想使用FileAppender而不是RollingFileAppender进行。它允许你覆盖现有的文件。
http://logging.apache.org/log4net/release/sdk/log4net.Appender.FileAppender.html
<appender name="FileAppender" type="log4net.Appender.FileAppender">
<file value="Content/log.txt" />
<appendToFile value="false" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
</layout>
</appender>
设置appendToFile假
下面介绍如何编写一次rollingapender文件每次执行的,但它仍然会创造每执行一个新的文件:
<appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="Content/log.txt" />
<appendToFile value="false" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="-1" />
<maximumFileSize value="10MB" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%-5p%d{yyyy-MM-dd hh:mm:ss} – %m%n" />
</layout>
</appender>
答
覆盖现有文件是否意味着要继续写入相同的文件(如循环缓冲区)?如果是这样,
1)您应该设置maxSizeRollBackups = 0。
2)您还应该设置appendToFile =真
请尝试,让我们知道您的结果
答
尝试使用此:
<param name="AppendToFile" value="false" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="0" />
<staticLogFileName value="true" />
此配置将覆盖现有的日志文件。
嘿丹尼尔戴森,,,非常感谢您的回复......但仍然不适合我。我已经在我的配置中添加了与u给出的相同的代码..但不是覆盖日志文件,而是开始在Content文件夹中创建多个文件。我想覆盖同一个文件中的信息。请给我们的视图。谢谢 – 2010-06-21 13:47:22
嘿丹尼尔,,,对不起我的错误......它与FileAppender工作正常,由u.Thanks引用很多。 – 2010-06-21 13:53:14