在 blazor webassembly 客户端应用程序中使用 serilog 作为日志记录提供程序
Use serilog as logging provider in blazor webassembly client app
我想在客户端和服务器端的 blazor webassembly net 6 应用程序中使用 serilog。
在 this article 中,我发现了如何将日志条目中继到服务器,以便将它们写入日志文件。
然而,在这种方法中,Log
静态 class 用于显式添加日志条目。
我想添加 serilog 作为日志记录提供程序,以便记录异常和自动生成的信息。
在服务器端我使用
var builder = WebApplication.CreateBuilder(args);
builder.Host
.UseSerilog((ctx, lc) =>
{
lc.ReadFrom.Configuration(ctx.Configuration);
});
这样一切都传递给 serilog。
UseSerilog
在 Serilog.AspNetCore 中定义。不幸的是,如果我将 Serilog.AspNetCore 添加到我的客户端项目,则会出现以下错误:
NETSDK1082 There was no runtime pack for Microsoft.AspNetCore.App
available for the specified RuntimeIdentifier 'browser-wasm'
有没有办法手动将 serilog 添加到日志记录提供程序,或者有没有办法将 Serilog.AspNetCore 包添加到客户端项目?
我已经能够通过添加 Serilog.Extensions.Logging NuGet 包将 Serilog 添加到我的客户端应用程序日志提供程序。
然后我使用了下面的代码:
using Serilog;
using Serilog.Core;
using Serilog.Extensions.Logging;
var builder = WebAssemblyHostBuilder.CreateDefault(args);
/* ... */
/* Serilog configuration
* here I use BrowserHttp sink to send log entries to my Server app
*/
var levelSwitch = new LoggingLevelSwitch();
Log.Logger = new LoggerConfiguration()
.MinimumLevel.ControlledBy(levelSwitch)
.Enrich.WithProperty("InstanceId", Guid.NewGuid().ToString("n"))
.WriteTo.BrowserHttp(endpointUrl: $"{builder.HostEnvironment.BaseAddress}ingest", controlLevelSwitch: levelSwitch)
.CreateLogger();
/* this is used instead of .UseSerilog to add Serilog to providers */
builder.Logging.AddProvider(new SerilogLoggerProvider());
我想在客户端和服务器端的 blazor webassembly net 6 应用程序中使用 serilog。 在 this article 中,我发现了如何将日志条目中继到服务器,以便将它们写入日志文件。
然而,在这种方法中,Log
静态 class 用于显式添加日志条目。
我想添加 serilog 作为日志记录提供程序,以便记录异常和自动生成的信息。
在服务器端我使用
var builder = WebApplication.CreateBuilder(args);
builder.Host
.UseSerilog((ctx, lc) =>
{
lc.ReadFrom.Configuration(ctx.Configuration);
});
这样一切都传递给 serilog。
UseSerilog
在 Serilog.AspNetCore 中定义。不幸的是,如果我将 Serilog.AspNetCore 添加到我的客户端项目,则会出现以下错误:
NETSDK1082 There was no runtime pack for Microsoft.AspNetCore.App available for the specified RuntimeIdentifier 'browser-wasm'
有没有办法手动将 serilog 添加到日志记录提供程序,或者有没有办法将 Serilog.AspNetCore 包添加到客户端项目?
我已经能够通过添加 Serilog.Extensions.Logging NuGet 包将 Serilog 添加到我的客户端应用程序日志提供程序。
然后我使用了下面的代码:
using Serilog;
using Serilog.Core;
using Serilog.Extensions.Logging;
var builder = WebAssemblyHostBuilder.CreateDefault(args);
/* ... */
/* Serilog configuration
* here I use BrowserHttp sink to send log entries to my Server app
*/
var levelSwitch = new LoggingLevelSwitch();
Log.Logger = new LoggerConfiguration()
.MinimumLevel.ControlledBy(levelSwitch)
.Enrich.WithProperty("InstanceId", Guid.NewGuid().ToString("n"))
.WriteTo.BrowserHttp(endpointUrl: $"{builder.HostEnvironment.BaseAddress}ingest", controlLevelSwitch: levelSwitch)
.CreateLogger();
/* this is used instead of .UseSerilog to add Serilog to providers */
builder.Logging.AddProvider(new SerilogLoggerProvider());