【问题标题】:Serilog overwrite fileSerilog 覆盖文件
【发布时间】:2017-02-23 10:12:48
【问题描述】:

如何配置 Serilog,使其在每次程序执行时覆盖文件?


代码

   Log.Logger = new LoggerConfiguration()
      .MinimumLevel.Debug()
      .WriteTo.ColoredConsole()
      .WriteTo.File("c:\\Logs\\myapp.log")
      .CreateLogger();

附加新执行的入口日志并没有什么坏处,但在开发过程中,只需获取当前的就很方便。

【问题讨论】:

  • 只是在创建记录器对象之前手动清除? #if debug System.IO.File.WriteAllText(@"c:\Logs\myapp.log",string.Empty); #endif.

标签: .net serilog


【解决方案1】:

正如上面评论中所建议的,删除带有System.IO.File.Delete() 的文件是可行的方法:

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

【讨论】:

    【解决方案2】:

    目前,删除文件(从测试本身)仍然存在问题,因为 seen in this issue 我还不得不删除该文件,但最终只是按照建议 in this thread's post

    在测试结束时清理它

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

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

    public void Dispose() 
    {
        // Some dispose code
    
        Serilog.Log.CloseAndFlush();
        File.Delete(LogFilePath);            
    }
    

    【讨论】:

      猜你喜欢
      • 2019-08-27
      • 1970-01-01
      • 1970-01-01
      • 2020-07-11
      • 1970-01-01
      • 2021-04-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多