无法使用logback.configurationFile参数配置自定义目录中的Logback
问题描述:
我想更改logback.configurationFile的默认目录以便为其指定新目录,以便它在该目录中查找logback.xml,但它不起作用。我怎样才能做到这一点?无法使用logback.configurationFile参数配置自定义目录中的Logback
public class App{
static{System.setProperty("logback.configurationFile","C:/Users/p.khaleghi/");}
public static void main(String args[]) {
if(args[0] == null){
System.out.println("There is no input file in the right directory");
}
else{
Calculator calculator = new Calculator();
calculator.calculate(args[0]);
}
}
}
答
的logback.configurationFile
系统属性是一个配置文件的路径,它是不,其可能包含一个配置文件目录的路径。
因此,假设有一个名为此目录中other-logback.xml
文件:C:/Users/p.khaleghi/
,那么你可以告诉的logback由要么本身从该文件中配置:
与以下JVM系统参数运行:
-Dlogback.configurationFile=C:/Users/p.khaleghi/other-logback.xml
使用在类的静态初始化器来设置系统属性:
static{System.setProperty("logback.configurationFile","C:/Users/p.khaleghi/other-logback.xml");}
。注意:如果这个静态初始化程序在之前运行,则此方法仅适用于Logback,因此如果您在同一个类中具有此静态初始程序和静态Logger声明,则可以在设置logbackConfigurationFile
属性之前初始化Logback。
更多细节in the docs
如果我有多个配置文件,我想给一个地址,它是什么,所以它看起来它 – PegahK
的logback的配置发现机制描述这里(HTTPS://的logback .qos.ch /手动/ configuration.html#auto_configuration),当您在系统参数通过重写此机制:'logback.configurationFile'但该参数具有在特定**文件指向**。这就是它的工作原理。如果您在该系统参数中提供目录(而不是特定文件),并且该目录包含多个配置文件,那么Logback如何知道要使用哪一个? – glytching
确定我解决它通过指向一个特定的logback.xml – PegahK