如何将java.util.logging.Logger覆盖到我的私有记录器?

Max*_*tin 1 java logging

我有从jar该用途获取的代码java.util.logging.Logger.

Jar包含大约1000个记录器用法,每个类从以下开始:

private static final Logger LOG = Logger.getLogger(SomeClass.class.getName());
Run Code Online (Sandbox Code Playgroud)

我想处理那里的所有日志,意思是指向我的Logger使用而不是java.util.logging.Logger.

因此我写了自己的记录器.

所以与其:

LOG.log(Level.SEVERE, "Error sleeping", e);
Run Code Online (Sandbox Code Playgroud)

我可以写:

 MyLogger.toLog(TLogLevel.WFS_ERROR, "Monkey", "Error sleeping", e );
Run Code Online (Sandbox Code Playgroud)

问题是我需要遍历所有java文件并替换为我的.

凌乱的方式,嗯

有谁知道如何通过简单的方式转换java.util.logging.Loggercom.boo.MyLogger

谢谢,

Thi*_*ilo 6

SLF4J项目有一个jul-to-slf4j桥,可用于将java.util.logging.Logger调用重定向到SLF4J.您可以使用它(通过使您的MyLogger实现SLF4J定义的接口).

但请注意,与所有其他日志记录库不同,jul硬连接到Java类库中,并且在没有性能损失的情况下无法桥接.

另外,我不知道你在使用MyLogger做什么,但通常不需要自己编写.有很多日志记录实现可供选择,它们可以通过多种不同方式进行配置.即使您必须编写自己的Logger 实现,也应该使用现有的界面(例如SLF4J,这些界面似乎最受欢迎).