1

我是 Blazor 的新手。我想登录到 Blazor WASM 客户端的文件。我尝试使用 serilog 和 serilog.sink.file。但我没有看到任何日志写入文件。我也没有看到任何错误。是不是因为 Blazor WASM 在无法访问本地文件系统的浏览器沙箱中运行。有没有办法从 Blazor WASM 登录到文件。

我尝试在 Main 中配置的代码:

Log.Logger = new LoggerConfiguration()
            .MinimumLevel.Is(logLevel)
            .WriteTo.File(path: @"C:\Users\abc\logs.log",
                          rollingInterval: RollingInterval.Day,
                          rollOnFileSizeLimit: true,
                          fileSizeLimitBytes: 10 * 1024 * 1024)                
            .CreateLogger();
 Log.Information("testing");
4

2 回答 2

1

无法直接在文件中记录 blazor WASM。因为代码完全在浏览器中运行。您还可以使用其他 serilog 接收器,例如为 blazor 提供特殊功能的 browserconsole 或 blazor relay

于 2021-04-23T18:35:28.340 回答
0

如果您想将日志写入客户端上的文件,您可以登录到控制台,然后启动 chrome,并选择重定向日志:

--enable-logging=stderr --v=1 > log.txt 2>&1

更容易登录到控制台并在浏览器中使用 F12 来查看日志。我使用 Microsoft.Logging.Extensions:

https://www.nuget.org/packages/Microsoft.Extensions.Logging

然后我在 Program.cs 中配置:

            builder.Services.AddLogging(builder => builder
                .SetMinimumLevel(LogLevel.Debug)
                .AddFilter("Microsoft", LogLevel.Warning)
                .AddFilter("System", LogLevel.Warning)
            );

然后我注入并调用记录器:

        [Inject] protected ILogger<MyClassIamLoggingFrom> Logger { get; set; }

        Logger?.LogDebug("Fetching install data");
于 2021-04-24T02:25:39.797 回答