我的Java项目中有一个database.properties
文件,其中包含我的数据库的主机名,用户名和密码。我在我的代码中使用它们来连接数据库。问题是,我使用log4j并在log4j.properties
文件中我必须设置数据库主机名,用户名和密码。需要这些属性,以便log4j可以在数据库中记录消息。
在我的项目中,我有几个使用log4j的模块,所以我必须在多个文件中设置数据库属性。
有没有办法使用database.properties
文件中log4j.properties
文件中的密钥?
答案 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);