0

我们正在使用以下将事件写入控制台和文件的 serilog 代码,文件和控制台日志记录在我的机器上工作正常,但在其他开发人员机器控制台日志记录工作但文件日志记录不起作用并增加了怪异虽然创建了“日志”文件夹。是否需要进行任何额外的设置?

   public static void SetupLogger()
        {
            //var outputTemplate =   "[{Timestamp:HH:mm:ss} {Level:u3}] {Message:lj}{NewLine}{Exception}";
            var outputTemplate = "[{Level:u3}] {Message:lj}{NewLine}{Exception}";

            // Logger  
            //var outputTemplate = "{Timestamp:yyyy-MM-dd HH:mm:ss.fff} [{Level:u4}] | {Message:l}{NewLine}{Exception}";
            Log.Logger = new LoggerConfiguration()
                .MinimumLevel.Verbose()
                .WriteTo.Console(outputTemplate: outputTemplate, theme:SystemConsoleTheme.Literate,restrictedToMinimumLevel:LogEventLevel.Information)
                .WriteTo.File($"logs/log-{DateTime.Now:yyyy-MM-dd_HH:mm:ss.fff}.log")              
                .CreateLogger();

        }
4

1 回答 1

5

解决 Serilog 任何问题的第一步是打开SelfLog并查看是否有任何异常被捕获。错误消息可能会为您提供有关问题所在的线索。

Serilog.Debugging.SelfLog.Enable(s => Console.WriteLine($"Internal Error with Serilog: {s}"));

或者,如果您没有控制台窗口,您也可以使用记事本窗口来检查SelfLog


无论如何,它不能运行的机器是否运行 Windows?我之所以问,是因为查看您的代码,我不希望它在 Windows 上工作,因为您保存的文件名称中带有:(冒号),这对于 Windows 中的文件名来说不是有效字符。

Windows 上文件的无效字符

于 2021-01-29T16:20:07.073 回答