log4j2:用于设置异步日志记录的 Log4jContextSelector 系统属性的位置
2022-09-03 04:50:31
我正在尝试在当前在 liberty 概要文件服务器中运行的 REST Web 方法中设置异步日志记录(出于性能原因)。
为此,我设置了以下属性:
System.setProperty("Log4jContextSelector", "org.apache.logging.log4j.core.async.AsyncLoggerContextSelector");
我的问题是,无论我在哪里这样做,有时它都能工作并且日志记录非常快,有时则不然。
我已经尝试(a)在包含所有REST Web方法的类的构造函数中(b)在过滤器doFilter方法中被调用,该方法在REST方法本身的过滤器初始化方法(d)中的REST方法(c)之前被调用
这些位置都无法始终如一地工作。
任何人都可以为这种行为提供解释,如果可能的话,还可以提供解决问题的建议方法。
编辑:似乎在调用 setProperty 之前,log4j 正在初始化。因此,我需要做的是通过自由配置文件设置属性。