在另一个.properties文件中使用.properties文件密钥

时间:2016-04-27 15:42:50

标签: java log4j

我的Java项目中有一个database.properties文件,其中包含我的数据库的主机名,用户名和密码。我在我的代码中使用它们来连接数据库。问题是,我使用log4j并在log4j.properties文件中我必须设置数据库主机名,用户名和密码。需要这些属性,以便log4j可以在数据库中记录消息。

在我的项目中,我有几个使用log4j的模块,所以我必须在多个文件中设置数据库属性。

有没有办法使用database.properties文件中log4j.properties文件中的密钥?

1 个答案:

答案 0 :(得分:0)

您可以使用PropertyConfigurator,加载两个属性文件,并使用log4j.properties中的内容替换database.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);