Java Logging - Wrapper?

时间:2015-04-24 17:45:34

标签: java logging

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

private static final Logger logger = Logger.getLogger(LoggingInterceptor.class);

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

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

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

 Log.debug(tag, message, exception);

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

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

1 个答案:

答案 0 :(得分:2)

基于java.util.logging.Logger APIthis articlegetLogger()的主要原因是确保在子系统之间独立使用相同的LoggerHandler集。

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

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

但是,如果您没有使用Handler,或者没有区分子系统,那么静态函数将是一个合理的捷径,只要使用的库符合您的需要。