以编程方式设置日志.xml路径
我知道我可以像这样设置日志.xml路径:
将默认配置文件的位置指定为系统属性
您可以使用名为“logback.configurationFile”的系统属性指定默认配置文件的位置。此属性的值可以是 URL、类路径上的资源或应用程序外部文件的路径。
java -Dlogback.configurationFile=/path/to/config.xml chapters.configuration.MyApp1
但是我该如何在代码中做到这一点?
我知道我可以像这样设置日志.xml路径:
将默认配置文件的位置指定为系统属性
您可以使用名为“logback.configurationFile”的系统属性指定默认配置文件的位置。此属性的值可以是 URL、类路径上的资源或应用程序外部文件的路径。
java -Dlogback.configurationFile=/path/to/config.xml chapters.configuration.MyApp1
但是我该如何在代码中做到这一点?
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();
您可以使用:
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) { ... }
}
注意:我还没有测试过它,但它应该有效。