在SLF4j中从Java更改日志记录输出文件的名称

时间:2013-09-09 08:08:42

标签: java logging log4j slf4j

我正在使用slf4j来管理我的应用程序日志记录。

我想在配置log4j.properties后更改输出文件的名称。我的意思是,文件名是一个进入我的程序并且是可变的参数。我想从java更改这个slf4j属性。

有人知道这是否可能?

提前致谢!

1 个答案:

答案 0 :(得分:2)

最后我解决了这个问题:

public void updateFichierLogNames(String warnFileName, String infoFileName, String errorFileName) {
        Properties props = new Properties(); 
    try { 
        InputStream configStream = getClass().getResourceAsStream( "/log4j.properties"); 
        props.load(configStream); 
        configStream.close(); 
    } catch (IOException e) { 
        System.out.println("Error: Cannot laod configuration file"); 
    } 

    props.setProperty("log4j.appender.infoFile.File", infoFileName); 
    props.setProperty("log4j.appender.warnFile.File", warnFileName); 
    props.setProperty("log4j.appender.errorFile.File", errorFileName); 

    LogManager.resetConfiguration(); 
    PropertyConfigurator.configure(props); 

    }
}