更改log4j.properties的位置

mar*_*kus 51 java log4j

我想将所有配置文件放在/config我的应用程序目录的子文件夹中.Log4j期待我的应用程序的根文件夹中的log4j.properties文件.有没有办法告诉log4j在哪里查找属性文件?

Ale*_*yak 68

是的,定义log4j.configuration属性

java -Dlog4j.configuration=file:/path/to/log4j.properties myApp
Run Code Online (Sandbox Code Playgroud)

请注意,该属性值必须是URL.

有关Log4j手册中的更多阅读部分"默认初始化过程" .

  • @Borat.你应该在Eclipse上使用RTFM,但我会给你一个提示.在该选项卡上运行 - >运行配置 - >参数选项卡 - > VM参数面板. (3认同)

Buh*_*ndi 32

您可以使用它PropertyConfigurator来加载log4j.properties,无论它位于磁盘中的哪个位置.

例:

Logger logger = Logger.getLogger(this.getClass());
String log4JPropertyFile = "C:/this/is/my/config/path/log4j.properties";
Properties p = new Properties();

try {
    p.load(new FileInputStream(log4JPropertyFile));
    PropertyConfigurator.configure(p);
    logger.info("Wow! I'm configured!");
} catch (IOException e) {
    //DAMN! I'm not....

}
Run Code Online (Sandbox Code Playgroud)

如果您有XML Log4J配置,请改用DOMConfigurator.