我知道如何设置文件有几个答案。非与我合作过。
我正在尝试统一几个conf文件,因为我需要将slf4j-log4j12中提供的log4j的conf设置为作为程序参数提供的配置文件。直到现在我尝试将jvm的参数设置为:
java '-Dlog4j.configuration=conf.cfg' -jar my.jar
我回来了:
log4j:WARN No appenders could be found for logger (org.apache.commons.beanutils.converters.BooleanConverter).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
log4j:ERROR Could not parse file [].
以编程方式设置:
System.setProperty("log4j.configuration",(new File( Configurator.getDefaultConfig().getString(Const.LoggingDefaultLoggingFile))).toURL().toString());
和
System.setProperty("log4j.configurationFile",(new File( Configurator.getDefaultConfig().getString(Const.LoggingDefaultLoggingFile))).toURL().toString());
同样的结果。
我尝试使用DOMConfigurator
,但适用于xml
我正在使用properties
,因此没有成功。
我正在搜索如何重新加载log4j,但提供了复杂的解决方案,用于订阅监视更改和不断加载更改。
我只想以编程方式更改配置文件一次。
直到现在,我才能将文件设置为直接放入jar中。但这是通过使用具有默认名称的分隔文件。
有没有办法直接在Log4j中加载文件(没有shity系统属性)? o有一种简单的方法可以做得更好吗?
答案 0 :(得分:0)
log4j在log4j.properties
WEB-INF\classes
PropertyConfigurator class,
用法示例:
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
// ...
public static final Logger log=Logger.getLogger(App.class);
// ...
PropertyConfigurator.configure("log4j.properties");