serilog拦截日志和修改日志

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (25)

我想拦截即将由serilog编写的日志,并根据一些逻辑对其进行修改,即在日志中查找一些敏感信息并对其进行掩码。

我到达的最接近点是找到ILogEventEnricher

public class LogEnricher : ILogEventEnricher
{
    public void Enrich(LogEvent logEvent, ILogEventPropertyFactory propertyFactory)
    {
       //do something here, but what?
    }
}

但LogEvent的MessagTemplate属性是readonly。任何想法如何在记录之前拦截日志并修改它们。

提问于
用户回答回答于

处理Serilog的常用方法是告诉Serilog在解构对象时不要记录某些属性。

例如,通过Destructurama.Attributed

public class LoginCommand
{
    public string Username { get; set; }

    [NotLogged]
    public string Password { get; set; }
}

您可以在此博文中阅读更多内容:使用属性来控制Serilog中的解构

类似 Destructurama.ByIgnoring

Log.Logger = new LoggerConfiguration()
    .Destructure.ByIgnoringProperties<User>(u => u.Password)
    // Other logger configuration
    .CreateLogger()

所属标签

可能回答问题的人

  • HKC

    红客学院 · 创始人 (已认证)

    26 粉丝7 提问5 回答
  • 西风

    renzha.net · 站长 (已认证)

    9 粉丝1 提问4 回答
  • Dingda

    Dingda · 站长 (已认证)

    4 粉丝0 提问3 回答
  • 螃蟹居

    1 粉丝0 提问2 回答

扫码关注云+社区

领取腾讯云代金券