serilog 不创建日志文件

serilog not creating log files

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

   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();

        }

解决任何 Serilog 问题的第一步是 turn on the SelfLog 并查看是否有任何异常被捕获。错误消息可能会让您了解问题所在。

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

或者,如果您没有控制台 Window,您也可以 use a Notepad window to inspect the SelfLog


总之,是哪里的机器不行运行Windows?我问是因为查看您的代码,我不希望它在 Windows 上工作,因为您保存的文件名称中带有 :(冒号),这不是文件名的有效字符在 Windows.