【问题标题】:Customize text before bring print through log4j在通过 log4j 打印之前自定义文本
【发布时间】:2021-07-10 20:42:00
【问题描述】:

我正在编写一个相当大的代码库。有很多日志被打印出来。我正在尝试修改所有现有日志以掩盖一些不应该打印的文本。我知道我可以找到所有这些日志并修改字符串,但是由于代码大小,这几乎是不可能的,而且对于将来还有人打印他们不应该打印的日志。

到目前为止,我尝试的是创建一个自定义记录器类,该类返回 Logger 接口(@98​​7654322@ 返回的接口)的修改版本,以便在打印之前处理字符串。这很好用,但这意味着我必须用我的新自定义类替换 Logger.getLogger() 的所有实例,但同样由于代码大小,这不是我能做的。

那么有没有让Logger.getLogger() 返回我自己的 Logger 接口实现?

【问题讨论】:

    标签: java spring log4j slf4j


    【解决方案1】:

    找到了解决办法。

    据我所知,没有办法让Logger.getLogger()返回Logger接口的自定义实现。 然而,我们可以扩展 log4j 用来格式化日志的 PatternLayout 类。 这个类让我们可以访问一个方法调用format,它接受LoggingEvent作为参数。我们可以重写此方法并修改包含要打印的日志的LoggingEvent

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-07-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-12
      • 1970-01-01
      相关资源
      最近更新 更多