Java LogManager property bestimmen/ausgeben

ralfb1105

Bekanntes Mitglied
Hallo zusammen,

ich nutze java.util.logging.* um Logging Informationen aus meiner kleinen Applikation (Oracle DB Benchmark Test) bereitzustellen, oder besser in ein Log File zu schreiben.

Hier kurz die von mir dazu verwendeten Code-Schnipsel:
Java:
private static Logger logWriter = Logger.getLogger(OraSimpleBench.class.getName());

In der main Class lese ich mir dann mein "privates" logging.properties File ein:
Java:
final InputStream inputStream = OraSimpleBench.class.getResourceAsStream("/logging.properties");
        try
        {
            LogManager.getLogManager().readConfiguration(inputStream);
        }
        catch (final IOException ex) {
            Logger.getAnonymousLogger().severe("Could not load default logging.properties file");
            Logger.getAnonymousLogger().severe(ex.getMessage());
        }
Die Log Infos können dann im Code beliebig erzeugt werden, z.B. wenn das Programm startet:
Java:
logWriter.info("****** Start OraSimpleBench application ******");
Das ganze funktioniert auch ohne Probleme. Nun aber zu meiner Frage/Herausforderung. Ich habe in der logging.properties das Log File folgendermassen definiert:
Code:
# Save in the user temp directory
java.util.logging.FileHandler.pattern = %t/OraSimpleBench%g.log
Das Log File wird dann in das User Temp Directory geschrieben. Dieses ist unter jedem OS, wie z.B. Linux, Windows oder Mac OS anders. Nun möchte ich im Programm die Info aus "java.util.logging.FileHandler.pattern = %t/OraSimpleBench%g.log", in ein jLabel im GUI schreiben, damit der User weiß wo er, je nach OS, sein Log File zu finden hat.

Leider habe ich noch nichts passendes gefunden, bzw. verstehe nicht wie man z.B. LogManager.getProperties usw. umsetzt 🙁

Ich hoffe Ihr könnt mir hier auf die Sprünge helfen. Falls ich das Problem nicht deutlich genug beschrieben habe, bitte auch schreiben - dann versuche ich es noch deutlicher zu beschreiben. Bin für jeden Ratschlag dankbar 😉

Gruß

Ralf
 
Hallo zusammen,

ich habe mir folgenden Workaround überlegt 😉

Java:
logFileLocation = System.getenv("TMPDIR") + "OraSimpleBench<generation>.log";

Das Ergebnis kann ich dann in einem jLabel anzeigen und so dem Benutzer anzeigen wo das Application Log liegt. Auf Mac OS habe ich es bereits getestet, Linux und Windows steht noch aus.

Wenn jemand noch eine besser Idee hat, sind diese GERNE willkommen 🙂

Gruß

Ralf
 

Zurück
Oben