在对日志 logger 的学习使用中想到,为什么每次构造 logger 实例都需要传入类的类型。比如
Logger logger = Logger.getLogger("com.foo.Bar");
就在思考为什么一定要传入一个类?为什么不使用一个单例模式,声明一个 public static 的 logger,只需要在其他地方引入然后直接使用就行,在实际试验后发现这样似乎也没有什么显式的问题,所有日志都能够正常记录,也不会显示出这个 logger 究竟是传入了什么类,然后就在网上搜索相关问题。
//private final static Logger logger = LoggerFactory.getLogger(javaParserUtils.class); private final static Logger logger = LoggerFactory.getLogger("sdafas");
得到的答案大概就是这个可以作为一个习惯做法,log4j 和其他日志框架的约定是为每个类定义一个静态日志 logger。