WPF Prism 8.x 中注册 Serilog 日志服务

本文介绍如何在 WPF Prism 8.x 中注册 Serilog 日志服务。

第一步:添加相关依赖

  • Microsoft.Extensions.Hosting
  • Serilog.Extensions.Hosting
  • Serilog.Sinks.Async
  • Serilog.Sinks.File
  • Prism.DryIoc
  • Prism.Container.Extensions

第二步:在 App.xaml.cs 中添加如下代码

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
protected override async void OnStartup(StartupEventArgs e)
{

    const long defaultFileSizeLimitBytes = 1L * 1024 * 1024 * 20; // 10M

    Log.Logger = new LoggerConfiguration()
        .MinimumLevel.Debug()
        .MinimumLevel.Override("Microsoft", LogEventLevel.Information)
        .Enrich.FromLogContext()
        .WriteTo.Async(c => c.File("Logs/logs.txt",
            rollingInterval: RollingInterval.Day,
            fileSizeLimitBytes: defaultFileSizeLimitBytes,
            rollOnFileSizeLimit: true))
        .CreateLogger();

    Log.Information("程序启动");
    base.OnStartup(e);
}

protected override void OnExit(ExitEventArgs e)
{
    Log.Information("程序关闭");
    Log.CloseAndFlush();
}

第三步:在窗口中添加测试代码

1
2
3
4
5
6
7
private readonly ILogger<MainWindowViewModel> _logger;
public MainWindowViewModel(ILogger<MainWindowViewModel> logger)
{
    _logger = logger;

    _logger.LogInformation("123");
}

本文已经完整的介绍了如何在 WPF Prism 8.x 中注册 Serilog 日志服务。

(完)