Java Logging - Wrapper?

hom*_*dom 7 java logging

我从一个新项目开始,并对日志记录做了一些考虑.我总是使用模式,其中每个完成日志记录的类都有自己的静态Logger:

private static final Logger logger = Logger.getLogger(LoggingInterceptor.class);
Run Code Online (Sandbox Code Playgroud)

我真的不喜欢这种方法,因为我必须将这一行复制到我将记录某些内容的每个类中.我考虑使用Android方法,其中有Log类,其中包含用于记录的静态方法.我开始在互联网上搜索其他人做的类似方法,但没有找到任何东西.

所以我的问题是:这种方法可能有什么不利之处?

我不能想到任何,而是有一些优点,因为它遵循DRY模式.可以使用带有"标记"的Android处理不同的类别,这些标记是静态Log方法的参数.例如:

 Log.debug(tag, message, exception);
Run Code Online (Sandbox Code Playgroud)

然后,Log类本身将使用常见的Logging Framework,例如Log4j甚至SLF4J.

所以我对你的意见感兴趣.

Was*_*moo 3

基于java.util.logging.Logger API本文,主要是为了保证子系统之间独立使用getLogger()sameLogger和set。Handler

Java 推荐的解决方案是获取Logger每个文件顶部的 ,然后在每次需要时记录到该对象。

使用静态数据Log.debug需要每次都tag进行处理,以便使用正确的集合。因此,它比准备好 Log 对象的效率要低。Handler

但是,如果您不使用handlers或不区分子系统,那么只要使用的库适合您的需求,静态函数将是一个合理的快捷方式。