如何在 blazor 中实现日志记录(服务器端 - 3.1)
How to implement logging in blazor (Server side - 3.1)
如何在blazor中实现日志记录
我正在使用 Blazor (3.1) 服务器方法
我想记录(到文件)一些事件
我已经尝试过这个扩展:https://github.com/BlazorExtensions/Logging 但我无法让它像它说的那样工作。
有人能给我指出一个有效的例子吗?或者告诉我我做错了什么(我用这种方法得到了这个错误:
检测到类型为“Microsoft.JSInterop.IJSRuntime)
的服务存在循环依赖
现在,由于与 IJSRuntime 的循环依赖性,Blazor 服务器端应用程序似乎不支持使用 Blazor.Extensions.Logging 进行日志记录:
https://github.com/BlazorExtensions/Logging/issues/44
PHeuter:"IJSRuntime may need to log and the logger needs IJSRuntime to do the logging."
为了为 Blazor 服务器实现日志记录,您将采用与 .NET Core or ASP.NET Core 应用程序相同的方法。
也就是说,在您的 Program.cs 文件中,您需要修改 CreateHostBuilder 方法,以
等方式配置您的记录器
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureLogging(logging =>
{
logging.ClearProviders();
logging.AddConsole();
})
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
});
然后您可以使用依赖项注入将 ILogger 注入到您的剃刀组件或整个应用程序的其余部分。
public class AboutModel : PageModel
{
private readonly ILogger _logger;
public AboutModel(ILogger<AboutModel> logger)
{
_logger = logger;
}
public string Message { get; set; }
public void OnGet()
{
Message = $"About page visited at {DateTime.UtcNow.ToLongTimeString()}";
_logger.LogInformation(Message);
}
}
请务必查看 Microsoft 文档以获取有关 built in loggers, third party loggers, and just logging in general 的信息。
你可以使用 Serilog
这对于客户端
https://nblumhardt.com/2019/11/serilog-blazor/
你还需要阅读
https://docs.microsoft.com/en-us/aspnet/core/fundamentals/logging/?view=aspnetcore-5.0
如何在blazor中实现日志记录
我正在使用 Blazor (3.1) 服务器方法
我想记录(到文件)一些事件
我已经尝试过这个扩展:https://github.com/BlazorExtensions/Logging 但我无法让它像它说的那样工作。
有人能给我指出一个有效的例子吗?或者告诉我我做错了什么(我用这种方法得到了这个错误:
检测到类型为“Microsoft.JSInterop.IJSRuntime)
的服务存在循环依赖现在,由于与 IJSRuntime 的循环依赖性,Blazor 服务器端应用程序似乎不支持使用 Blazor.Extensions.Logging 进行日志记录:
https://github.com/BlazorExtensions/Logging/issues/44
PHeuter:"IJSRuntime may need to log and the logger needs IJSRuntime to do the logging."
为了为 Blazor 服务器实现日志记录,您将采用与 .NET Core or ASP.NET Core 应用程序相同的方法。
也就是说,在您的 Program.cs 文件中,您需要修改 CreateHostBuilder 方法,以
等方式配置您的记录器public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureLogging(logging =>
{
logging.ClearProviders();
logging.AddConsole();
})
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
});
然后您可以使用依赖项注入将 ILogger 注入到您的剃刀组件或整个应用程序的其余部分。
public class AboutModel : PageModel
{
private readonly ILogger _logger;
public AboutModel(ILogger<AboutModel> logger)
{
_logger = logger;
}
public string Message { get; set; }
public void OnGet()
{
Message = $"About page visited at {DateTime.UtcNow.ToLongTimeString()}";
_logger.LogInformation(Message);
}
}
请务必查看 Microsoft 文档以获取有关 built in loggers, third party loggers, and just logging in general 的信息。
你可以使用 Serilog
这对于客户端 https://nblumhardt.com/2019/11/serilog-blazor/
你还需要阅读 https://docs.microsoft.com/en-us/aspnet/core/fundamentals/logging/?view=aspnetcore-5.0