我正在研究一个相当大的代码库。有很多日志要打印。我正在设法修改所有现有的日志,以屏蔽一些不应该打印的文本。我知道我可以找到所有这些日志并修改字符串,但由于代码太大,这几乎是不可能的,而且对于将来,以及万一有人打印他们不应该打印的日志。
到目前为止,我尝试的是创建一个定制的logger类,它返回 Logger
接口 Logger.getLogger()
返回)以在打印前处理字符串。这很好,但这意味着我将不得不替换 Logger.getLogger()
对于我的新自定义类,但同样由于代码大小,这不是我能做的。
那么,还有别的地方可以吃吗 Logger.getLogger()
返回我自己实现的logger接口?
1条答案
按热度按时间twh00eeo1#
找到了解决办法。
据我所知,没有办法
Logger.getLogger()
返回记录器接口的自定义实现。但是我们可以PatternLayout
log4j用来格式化日志的类。这个类允许我们访问一个方法调用format
它吸收了LoggingEvent
作为参数。我们可以重写此方法并修改LoggingEvent
其中包含打印的日志。