标签: serilog-sinks-azureblobstorage

尝试在 Blazor 中使用 serilog-sinks-azureblobstorage

更新: 我这里有一个非常简单的例子。既不工作File也不AzureBlobStorage工作。此外,如果AzureBlobStorage设置了,它会在尝试加载时遇到异常Blazor_Logger_bug.styles.css- 这解释了为什么启用此功能时页面无法呈现。

我已经转而编写自己的记录器(比我尝试使用 Serilog 花费的时间更少)。但想警告其他人,它似乎不起作用,并会在您的应用程序中导致不相关的问题。


我在 Blazor 服务器应用程序中使用此功能(Serilog 到文件接收器工作正常)时遇到各种问题。

如果我设置如下:

var _logger = new LoggerConfiguration()
    .ReadFrom.Configuration(config)
    .CreateLogger();
Log.Logger = _logger;
builder.Logging.AddSerilog(Log.Logger);
Run Code Online (Sandbox Code Playgroud)

然后它会成功记录到 Azure BLOB。但我有以下问题:

  1. 应用程序的页面显示空白。页面源是 _Host.cshtml,没有两个 <component> 节点(这就是一切)。

如果我设置如下:

builder.Logging.AddSerilog();
Run Code Online (Sandbox Code Playgroud)

然后网页就可以正常显示了。但我有以下问题:

  1. Azure BLOB 中未记录任何内容。

如果我将其设置如下:

builder.Host.UseSerilog((hostingContext, loggerConfiguration) =>
{
    loggerConfiguration.ReadFrom.Configuration(hostingContext.Configuration);
});
Run Code Online (Sandbox Code Playgroud)

然后网页就可以正常显示了。

但我有以下两个问题:

  1. Azure BLOB 中未记录任何内容。
  2. 控制台和调试日志记录没有任何内容。我认为是因为这取代了当时设置的日志记录。

完整的相关代码是:

if (builder.Environment.IsDevelopment())
{
    builder.Logging.ClearProviders();
    builder.Logging.AddJsonConsole();
    builder.Logging.AddDebug();
}
builder.Logging.AddSerilog();
Run Code Online (Sandbox Code Playgroud)

相关配置是:

"Serilog": {
    "Using": [ "Serilog.Sinks.File", "Serilog.Sinks.AzureBlobStorage" ],
    "MinimumLevel": {
        "Default": "Warning",
        "Override": { …
Run Code Online (Sandbox Code Playgroud)

serilog blazor blazor-server-side serilog-aspnetcore serilog-sinks-azureblobstorage

5
推荐指数
0
解决办法
216
查看次数