无法使用logback.configurationFile参数从自定义目录配置Logback

时间:2017-10-10 06:11:14

标签: java maven logging logback

我想更改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]);
        }

    }
}

1 个答案:

答案 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