Serilog 未记录到文件 ASP.Net Core 3.2

Serilog not logging to file ASP.Net Core 3.2

我正在尝试在我的 WebAssembly Blazor 应用程序中使用 Serilog.AspNetCore 3.2.0 登录到一个文件。

我在这里使用了 Nicholas Blumhardt 的博客条目;

Setting up Serilog in ASP.NET Core 3.2

在我的 blazor.server 应用程序的 Program.cs 中,我有以下代码;

    public static void Main(string[] args)
    {
        Log.Logger = new LoggerConfiguration()
        .Enrich.FromLogContext()
        .WriteTo.Console(new RenderedCompactJsonFormatter())
        .WriteTo.File(new RenderedCompactJsonFormatter(), "/logs/log.ndjson")
        .CreateLogger();
        try
        {
            Log.Information("Starting up");
            BuildWebHost(args).Run();
        }
        catch (Exception ex)
        {
            Log.Fatal(ex, "Application start-up failed");
        }
        finally
        {
            Log.CloseAndFlush();
        }
    }


    public static IWebHost BuildWebHost(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
            .UseConfiguration(new ConfigurationBuilder()
                .AddCommandLine(args)
                .Build())
            .UseStartup<Startup>()
            .Build();

我安装了以下软件包;

Serilog.AspNetCore 3.2.0 Serilog.Sinks.File 4.1.0 Serilog.Sinks.MSSqlServer 5.5.0

(为了完整性,我包括了 MSSql Sink 参考,因为我的下一步是查看登录到数据库)。

但是,当我在本地调试以及在 IIS 中发布到服务器时,没有创建 log.ndjson?

如果您从 visual studio 运行 默认情况下,文件将在项目目录中创建。所以这完全取决于您 运行 如何使用应用程序。所以你必须改变文件的路径。