2017-10-10 74 views
1

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

    } 
} 

回答

1

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

相關問題