2016-04-27 6 views
0

Ich habe eine database.properties Datei in meinem Java-Projekt, die den Hostnamen, Benutzername, Passwort zu meiner Datenbank enthält. Ich benutze sie in meinem Code, um eine Verbindung zur Datenbank herzustellen. Die Sache ist, dass ich log4j benutze und innerhalb der log4j.properties Datei muss ich den Datenbank-Hostnamen, den Benutzernamen und das Passwort einstellen. Diese Eigenschaften werden benötigt, damit log4j Nachrichten in der Datenbank protokollieren kann.Verwenden Sie eine .properties Datei Schlüssel in einer anderen .properties Datei

In meinem Projekt habe ich mehrere Module, die log4j verwenden, also muss ich die Datenbankeigenschaften in mehreren Dateien festlegen.

Gibt es eine Möglichkeit, die Schlüssel aus der database.properties Datei in der log4j.properties Datei zu verwenden?

Antwort

0

Sie können eine PropertyConfigurator verwenden, laden Sie beide Eigenschaftendateien und ersetzen Sie einige Eigenschaften der log4j.properties Datei mit Inhalt von database.properties.

Dann übergeben Sie es an den Konfigurator.

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); 
Verwandte Themen