【问题标题】:Custom LogEventLevel with Serilog使用 Serilog 自定义 LogEventLevel
【发布时间】:2018-10-04 19:10:59
【问题描述】:

我在 .Net 项目中使用 Serilog 和 Seq。我的主要目标是记录一些特定事件。 我想拥有自己的日志事件级别(如“警告”、“详细”、“信息”...)。 但我真的不知道是否有可能拥有我的自定义日志级别:

private static readonly ILogger Logger = Log.ForContext<MyController>();
        .
        .
        .
Logger.MyCustomLogLevel(....);

有可能吗?

【问题讨论】:

    标签: .net logging seq serilog


    【解决方案1】:

    虽然自定义关卡是不可能的,但想象一下您想要创建(逻辑上)和Important 关卡,您可以通过以下方式实现接近相同的目标:

    static class LoggerExtensions
    {
      public static void Important(
        this ILogger logger,
        string messageTemplate,
        params object[] args)
      {
        logger.ForContext("IsImportant", true)
          .Information(messageTemplate, args);
      }
    }
    

    用法:

    Logger.Important("Hello, {Name}!", "World");
    

    在序列中:

    IsImportant = true
    

    或者:

    select count(*) from stream where IsImportant limit 10
    

    【讨论】:

    • 我终于做到了:)。谢谢
    【解决方案2】:

    Serilog 不支持自定义日志级别。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-06
      • 2022-12-03
      • 2018-07-01
      • 2015-09-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-09
      相关资源
      最近更新 更多