Serilog覆盖文件

6
如何配置Serilog,使其在每次程序执行时覆盖文件?
代码
   Log.Logger = new LoggerConfiguration()
      .MinimumLevel.Debug()
      .WriteTo.ColoredConsole()
      .WriteTo.File("c:\\Logs\\myapp.log")
      .CreateLogger();

追加新执行的条目日志不会有害,但在开发过程中仅获取当前日志会更方便。


1
在创建记录器对象之前,只需手动清除它? #if debug System.IO.File.WriteAllText(@"c:\Logs\myapp.log",string.Empty); #endif. - user5226582
2个回答

6

如上面评论所建议的那样,使用System.IO.File.Delete()删除文件是正确的方法:

File.Delete("c:\\Logs\\myapp.log");

0

目前,仍存在删除文件的问题(从测试本身中),如在此问题中所见。我也不得不删除该文件,但最终只是按照此帖子中建议的方式进行了清理。

另一个建议是执行与我相同的解决方法。

在您的dispose方法(或测试方法结束时,或任何需要的地方)

public void Dispose() 
{
    // Some dispose code

    Serilog.Log.CloseAndFlush();
    File.Delete(LogFilePath);            
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接