以编程方式设置日志.xml路径

2022-08-31 20:45:43

我知道我可以像这样设置日志.xml路径:

将默认配置文件的位置指定为系统属性

您可以使用名为“logback.configurationFile”的系统属性指定默认配置文件的位置。此属性的值可以是 URL、类路径上的资源或应用程序外部文件的路径。

java -Dlogback.configurationFile=/path/to/config.xml chapters.configuration.MyApp1

但是我该如何在代码中做到这一点?


答案 1
LoggerContext loggerContext = (LoggerContext) LoggerFactory.getILoggerFactory();
loggerContext.reset();
JoranConfigurator configurator = new JoranConfigurator();
InputStream configStream = FileUtils.openInputStream(logbackPropertiesUserFile);
configurator.setContext(loggerContext);
configurator.doConfigure(configStream); // loads logback file
configStream.close();

答案 2

您可以使用:

System.setProperty("logback.configurationFile", "/path/to/config.xml");

但它必须在加载 logback 之前发生,即类似如下:

class Main {
  static { System.setProperty("logback.configurationFile", "/path/to/config.xml");}
  private final Logger LOG = LoggerFactory.getLogger(Main.class);

  public void main (String[] args) { ... }
}

注意:我还没有测试过它,但它应该有效。


推荐