我知道无状态bean不会保持会话状态,但我需要的只是一个记录器。我应该在每个被调用的方法中获得记录器吗?如果没有,那么我应该在哪里初始化它?
这是肯定的,如果我编写这样的代码,我会在某些使用logger的方法中得到NullPointerException吗?
@PostConstruct
public void init() {
logger = Logger.getLogger();
}
答案 0 :(得分:1)
我猜你不想要一个特定于请求/会话的记录器,对吧?在这种情况下,您甚至可以使用静态类成员添加记录器,并让所有bean实例使用相同的记录器。
答案 1 :(得分:0)
创建一个具有以下属性的单例类:
getInstance()
方法,它将提供该类的唯一实例getLogger()
获取记录器的方法在此类的构造函数中初始化记录器并且
您可以在每次需要使用时从getLogger()方法获取记录器
答案 2 :(得分:0)
尝试:
private static final Logger log = Logger.getLogger();
如果你需要线程特定的值,请注意Logger的输出处理程序在每一行写入线程名称,你应该没问题。