使用Serilog记录日志

默认日志:

1
Console.WriteLine("日志内容...");

Serilog日志:

1
Log.Error("OMG its on fire!");

Serilog日志显示效果:

1.安装依赖包:

Serilog 和 Serilog.Sinks.BrowserConsole

注意由于Serilog.Sinks.BrowserConsole现在还没有正式版本,所以必须在“程序包管理控件台”用命令安装,命令如下:

1
dotnet add BlazorApp3 package Serilog.Sinks.BrowserConsole -v 1.0.0-dev-00012

2.创建日志实例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 public class Program
    {
        public static async Task Main(string[] args)
        {
            var builder = WebAssemblyHostBuilder.CreateDefault(args);
            builder.RootComponents.Add<App>("app");

            builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) });

            builder.Services.AddSingleton<Markdig.MarkdownPipeline>(sp =>
            new Markdig.MarkdownPipelineBuilder()
            .UseAdvancedExtensions()
            .UseSyntaxHighlighting()
            .Build());

            Log.Logger = new LoggerConfiguration()
                .MinimumLevel.Debug()
                .WriteTo.BrowserConsole()
                .CreateLogger();

            await builder.Build().RunAsync();
        }
    }

3.Serilog日志例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
@page "/loging"
@using Serilog

<div class="row mt-1">
    <button class="btn btn-primary" @onclick="LogMessage">Log Message with Serilog</button>
</div>

<div class="row mt-1" >
    <button class="btn btn-warning" @onclick="LogWarning">Log Warning with Serilog</button>
</div>
<div class="row mt-1">
    <button class="btn btn-danger" @onclick="LogError" >Log Error with Serilog</button>
</div>


@code {

    private void LogMessage()
    {
        Log.Information("Information Message");
    }

    private void LogWarning()
    {
        Log.Warning("Warning Message");
    }

    private void LogError()
    {
        Log.Error("OMG its on fire!");
    }

}

引深:

还可以将日志同时记录到服务器客户端浏览器中:

https://nblumhardt.com/2019/11/serilog-blazor/