2016-04-27 59 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);