使用slf4j-log4j12使用Log4j设置配置文件

时间:2016-03-11 10:28:23

标签: java logging log4j slf4j

我知道如何设置文件有几个答案。非与我合作过。

我正在尝试统一几个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有一种简单的方法可以做得更好吗?

1 个答案:

答案 0 :(得分:0)

  1. log4j在log4j.properties

  2. 下寻找WEB-INF\classes
  3. PropertyConfigurator class,

  4. 用法示例:

    import org.apache.log4j.Logger;
    import org.apache.log4j.PropertyConfigurator;
    // ...
    public static final Logger log=Logger.getLogger(App.class);
    // ...
    PropertyConfigurator.configure("log4j.properties");