我想更改logback.configurationFile的默认目录,以便为其提供一个新目录,以便它在该目录中查找logback.xml但它不起作用。我怎么能这样做?
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]);
}
}
}
答案 0 :(得分:2)
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声明,那么可以在{{1}之前初始化Logback }属性已设置。
更多详情in the docs