在通过log4j打印之前自定义文本

qpgpyjmq  于 2021-07-13  发布在  Java
关注(0)|答案(1)|浏览(374)

我正在研究一个相当大的代码库。有很多日志要打印。我正在设法修改所有现有的日志,以屏蔽一些不应该打印的文本。我知道我可以找到所有这些日志并修改字符串,但由于代码太大,这几乎是不可能的,而且对于将来,以及万一有人打印他们不应该打印的日志。
到目前为止,我尝试的是创建一个定制的logger类,它返回 Logger 接口 Logger.getLogger() 返回)以在打印前处理字符串。这很好,但这意味着我将不得不替换 Logger.getLogger() 对于我的新自定义类,但同样由于代码大小,这不是我能做的。
那么,还有别的地方可以吃吗 Logger.getLogger() 返回我自己实现的logger接口?

twh00eeo

twh00eeo1#

找到了解决办法。
据我所知,没有办法 Logger.getLogger() 返回记录器接口的自定义实现。但是我们可以 PatternLayout log4j用来格式化日志的类。这个类允许我们访问一个方法调用 format 它吸收了 LoggingEvent 作为参数。我们可以重写此方法并修改 LoggingEvent 其中包含打印的日志。

相关问题