记录到 Blazor WASM 中的文件

Logging to a file in Blazor WASM

我是 Blazor 的新手。我想登录到 Blazor WASM 客户端的一个文件。我尝试使用 serilog 和 serilog.sink.file。但我没有看到任何日志写入文件。我也没有看到任何错误。是不是因为 Blazor WASM 在无法访问本地的浏览器沙箱中运行 filesystem.Is 有什么方法可以从 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");

无法直接在文件中记录 blazor WASM。因为在浏览器中完全编码 运行。您还可以使用其他 serilog 接收器,例如为 blazor

提供特殊功能的 browserconsole 或 blazor relay

如果您想将日志写入客户端上的文件,您可以登录到控制台,然后启动 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");