java仅在缺少配置的情况下通过代码配置log4j2
我只想通过代码配置log4j2日志框架,以防在初始化过程中找不到任何配置文件
我读了这本书。至于现在,我能够检测到log4j是在没有任何配置(ConfigurationSource.NULL_SOURCE
)的情况下初始化的,并以编程方式激活我的新默认配置。但在这种情况下,我仍然会收到log4j2 Status Loggor关于缺少配置的错误消息,我必须停止当前配置并启动新配置
我想知道我的用例是否不能使用ConfigurationFactory
方法。但我不知道如何将其连接到初始化过程中,只有在没有其他配置方法成功的情况下才能激活它。我想保留常规配置过程和支持的文件类型不变
我目前的做法是
@Plugin(name="FooBarConfigurationFactory", category = ConfigurationFactory.CATEGORY)
@Order(0) // should be very low priority
public class FooBarConfigurationFactory extends ConfigurationFactory {
@Override
protected String[] getSupportedTypes() {
// what to return here if the factory should support 'missing' configuration file?
return new String[] {"*"};
}
@Override
public Configuration getConfiguration(LoggerContext loggerContext, ConfigurationSource source) {
System.out.println("Get FooBar Configuration..."); // never saw this so far :-(
return ...;
}
谢谢你的帮助
弗兰兹
# 1 楼答案
有一种方法可能并不完美,但我认为它能满足你的需求
下面是一个简单的例子:
Log4j2。java
定制配置工厂。java
然后创建一个名为log4j2的空文件。在^{中编码
注:
最重要的是确保定制log4j2配置资源文件的
suffix
与CustomConfigurationFactory.getSupportedTypes
方法的返回值相对应更新
如果log4j2找不到
CustomConfigurationFactory
插件,请尝试启用注释处理