log4j日志文件路径设置

假设有如下标准化的目录结构:
$HOME
|-- log
|-- conf
|-- bin
|-- lib
|-- data

jar包放在lib目录,启动脚本放在bin目录,日志文件放在log目录,配置文件放在conf目录(包括log4j的配置文件log4j.properties)。
在程序代码和配置文件中均不定义绝对目录如:/usr/local/myapp/log/myapp.log和/usr/local/myapp/conf/log4j.properties等。

那么在代码中可以如下实现:

  1. String path = System.getProperty("java.class.path");
  2. int first_index = path.lastIndexOf(System.getProperty("path.separator")) + 1;
  3. int last_index = path.lastIndexOf(File.separator) + 1;
  4. path = path.substring(first_index, last_index);


  5. System.setProperty("myhome", path); // "myhome"供log4j.properties使用
  6. PropertyConfigurator.configure(path + "/conf/log4j.properties");
log4j.properties中的日志文件路径配置为:
log4j.appender.stdout.File=${myhome}/log/myapp.log

这样不管在哪儿启动,都可以保持日志文件和配置文件路径不随变化。

上一篇:手把手教 | 深度学习库PyTorch(附代码)


下一篇:SharePoint Framework 构建你的第一个web部件(二)