繁体   English   中英

Java Logging - Wrapper?

[英]Java Logging - Wrapper?

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

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM