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

无法使用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

+0

如果我有多个配置文件,我想给一个地址,它是什么,所以它看起来它 – PegahK

+0

的logback的配置发现机制描述这里(HTTPS://的logback .qos.ch /手动/ configuration.html#auto_configuration),当您在系统参数通过重写此机制:'logback.configurationFile'但该参数具有在特定**文件指向**。这就是它的工作原理。如果您在该系统参数中提供目录(而不是特定文件),并且该目录包含多个配置文件,那么Logback如何知道要使用哪一个? – glytching

+0

确定我解决它通过指向一个特定的logback.xml – PegahK