2016-04-27 55 views
0

我在我的Java項目中有一個database.properties文件,其中包含我的數據庫的主機名,用戶名和密碼。我在我的代碼中使用它們來連接到數據庫。事情是,我使用log4j和log4j.properties文件內我必須設置數據庫主機名,用戶名和密碼。這些屬性是必需的,以便log4j可以在數據庫中記錄消息。在另一個.properties文件中使用.properties文件密鑰

在我的項目中,我有幾個模塊使用log4j,所以我將不得不在多個文件中設置數據庫屬性。

有沒有辦法使用log4j.properties文件中database.properties文件中的密鑰?

回答

0

您可以使用PropertyConfigurator加載這兩個屬性文件,並用database.properties的內容替換log4j.properties文件的某些屬性。

然後,將它傳遞給配置器。

Properties dbProps = new Properties(); 
    FileInputStream in = new FileInputStream("database.properties"); 
    dbProps.load(in); 
    in.close(); 

    Properties log4jProperties= new Properties(); 
    FileInputStream in2 = new FileInputStream("log4j.properties"); 
    log4jProperties.load(in2); 
    in2.close(); 

    // replace things 
    log4jProperties.setProperty("log4j.appender.DB.URL", dbProps.getProperty("db.url")); 
    log4jProperties.setProperty("log4j.appender.DB.user", dbProps.getProperty("db.usr")); 
    log4jProperties.setProperty("log4j.appender.DB.password", dbProps.getProperty("db.pwd")); 

    // configure Log4j 
    PropertyConfigurator.configure(log4jProperties);