运行时log4net删除文件是否可能c#

时间:2015-05-16 13:35:39

标签: c# log4net

是否可以在运行时删除日志?在应用程序启动之前我想做的是删除所有日志;如果那是不可能的,我想在运行时清除所有日志。

有任何建议/代码段吗?

4 个答案:

答案 0 :(得分:2)

是的,是否可以清除日志文件。如果程序不存在,将通过启动程序来创建日志文件。 要清除文件,请查看此处:Clearing content of text file using C#

答案 1 :(得分:2)

另一种方法是在日志文件名中使用processid - 然后每次启动应用程序时,都会得到一个新的日志文件:

<appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender, log4net">
  <file type="log4net.Util.PatternString" value="D:\Logs\MyApp.log-[%processid].txt"/>

答案 2 :(得分:1)

log4net不支持“开箱即用”。但是,您可以使用RollingFileAppender并创建手动类/方法来清理/删除日志文件。请参阅此答案:https://stackoverflow.com/a/2916628/3016125

答案 3 :(得分:0)

我没有尝试以编程方式删除日志文件,而是更喜欢将RollingFlatFileWriter和执行类似以下每日重复执行的计划任务组合在一起:     forfiles -p“C:\ path to logd”-s -m * .log -d -5 -c“cmd / c del @path”

以上删除任何以.log结尾且超过5天的文件。这样可以提供足够的时间来确保备份存档中每天都有可用的日志副本。