Jam*_*son 9 java websphere-liberty log4j2
我试图在当前在自由配置文件服务器中运行的REST Web方法中设置异步日志记录(出于性能原因).
为此,我设置了以下属性:
System.setProperty("Log4jContextSelector", "org.apache.logging.log4j.core.async.AsyncLoggerContextSelector");
Run Code Online (Sandbox Code Playgroud)
我的问题是,无论我在哪里这样做,有时它的工作和记录非常快,有时它不会.
我已经尝试了(a)包含所有REST Web方法(b)的类的构造函数,该方法在REST方法()中的REST方法之前调用,在REST方法本身的过滤器初始化方法(d)中调用
这些位置都不一致.
任何人都可以提供此行为的解释,如果可能的话,建议的方法来解决问题.
编辑:似乎在调用setProperty之前初始化了log4j.所以我需要做的是通过自由配置文件来设置属性.
Jam*_*oms 19
有一种未记录的方法为您的项目设置此值,而无需在启动期间手动传入系统属性值.
添加一个命名log4j2.component.properties为类路径的文件.这可以通过保存在大多数maven或gradle项目中完成src/main/resources.
这是文件只是java.util.Properties文件.通过将以下行添加到文件来设置上下文选择器的值.
Log4jContextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelector
Run Code Online (Sandbox Code Playgroud)
Log4j将首先尝试读取系统属性.如果系统属性为null,则默认情况下它将回退到此文件中存储的值.
执行此设置的代码位于Log4jContextFactory.java:91.
| 归档时间: |
|
| 查看次数: |
7459 次 |
| 最近记录: |