我有一个Java项目,我创建了七个记录器,可以从程序的每个点通过外观访问.但是在互联网上,我看到很多例子都是每个班级都有一个记录器.
什么是最推荐的记录方式?
hom*_*ome 11
我为每个技术方面使用一个记录器,例如日志记录,跟踪,调试,方法输入/输出(private static final...).我经常使用共享记录器来实现功能方面,例如审计跟踪,安全性; 公共记录器在共享类中.
我不了解标准或一般最佳实践,但这种方法对我来说效果很好.
每个类中的记录器更好,更容易扩展.原因是在一个类中定义一个记录器可以轻松地将实际记录api与记录器的配置(格式,持久性)分开.我使用过多个大而复杂的java软件(> 100万行代码),每个类都使用一个记录器.
另外,定义"每个类一个记录器"并不意味着每个类使用不同的记录器实例.
class Foo {
private static final Logger log = Logger.getLogger( Foo.class );
}
class Bar {
private static final Logger log = Logger.getLogger( Bar.class );
}
Run Code Online (Sandbox Code Playgroud)
如果上面的代码不确定,上面使用的两个记录器是否使用相同的记录器实例.通常,有一个配置位置(在属性文件或程序中)指定Foo和Bar中的logger是否共享记录器.
所以"每个类中的记录器"只是在每个类中定义一个记录器,但是这样的记录器可能从不同的类引用相同的记录器实例