首页 > 解决方案 > 如何在 vb.net 中使用 serilog 单独文件

问题描述

我正在尝试将示例从 C# 逐级转换为 VB.NET 单独文件。

C#:

Log.Logger = new LoggerConfiguration()
    .MinimumLevel.Debug()
    .WriteTo.Console()
    .WriteTo.Logger(l => l.Filter.ByIncludingOnly(e => e.Level == LogEventLevel.Debug)
        .WriteTo.File(DebugLogFile, rollingInterval: RollingInterval.Hour, rollOnFileSizeLimit: true))
    .WriteTo.Logger(l => l.Filter.ByIncludingOnly(e => e.Level == LogEventLevel.Information)
        .WriteTo.File(InfoLogFile, rollingInterval: RollingInterval.Hour, rollOnFileSizeLimit: true))
    .WriteTo.Logger(l => l.Filter.ByIncludingOnly(e => e.Level == LogEventLevel.Error)
        .WriteTo.File(ErrorLogFile, rollingInterval: RollingInterval.Hour, rollOnFileSizeLimit: true))
    .CreateLogger();

VB:

Log.Logger = New LoggerConfiguration() _
    .MinimumLevel.Debug() _
    .WriteTo.Logger(New Action(Of LoggerConfiguration)(Function(r) r.Filter.ByIncludingOnly((Function(z) z.Level = LogEventLevel.Debug)))) _
    .WriteTo.File("debug.txt") _
       .WriteTo.Logger(New Action(Of LoggerConfiguration)(Function(r) r.Filter.ByIncludingOnly((Function(z) z.Level = LogEventLevel.Information)))) _
    .WriteTo.File(New CompactJsonFormatter(), "info.txt") _
    .CreateLogger
    Log.Debug("Debug")
    Log.Information("info")

结果是 Debug 和 info 显示 Debug.txt 和 info.txt

标签: vb.netserilogc#-to-vb.netcode-conversion

解决方案


我可以通过这段代码解决它。

 Log.Logger = New LoggerConfiguration() _
            .MinimumLevel.Debug() _
        .WriteTo.Logger(New Action(Of LoggerConfiguration)(Function(r) r.Filter.ByIncludingOnly(Function(z) z.Level = LogEventLevel.Debug).WriteTo.File(New CompactJsonFormatter(), "debug.txt"))) _
           .WriteTo.Logger(New Action(Of LoggerConfiguration)(Function(r) r.Filter.ByIncludingOnly(Function(z) z.Level = LogEventLevel.Information).WriteTo.File(New CompactJsonFormatter(), "info.txt"))) _
        .CreateLogger
        Log.Debug("Debug")
        Log.Information("info")

代码并不简单,所以让人困惑任何人都可以让它变得简单。


推荐阅读