2009-08-04 10 views

Antwort

1

Sprechen Sie über JULog?

Wenn ja, ist die Antwort "Sie können nicht". Um die Datei zu ändern, in der Sie sich anmelden (oder etwas anderes in der Konfiguration ändern), müssen Sie wissen, welche zugrunde liegende Logging-Implementierung Sie verwenden und warum Sie JULog verwenden sollten (durchaus diskutierbar, außer Sie entwickeln eine Bibliothek)) ist nicht ANY Bindungen Logging-Implementierungen.

Wenn die Auswahl einer Datei zur Laufzeit eine Voraussetzung ist, werden Sie wahrscheinlich besser mit einer konkreten Implementierung wie Log4j gehen.

+0

(nb: diese Antwort für die originale, unbearbeitete Frage war „Einstellen Juli logging“/„Ich bin mit Juli Protokollierung .. . ") Anstelle von Log4j könnte dies mithilfe von Logback erreicht werden (verwenden Sie slf4j, um die gesamte Protokollierung auf Logback umzuleiten); siehe http://stackoverflow.com/questions/3803184/setting-logback-appender-path-programmatically (aber immer noch, es ist eine schlechte Idee; es gibt verschiedene Logback-Appender/Policies, die die Ausgabedatei kontrollieren, so dass die Log-Konfiguration beibehalten werden kann in der XML-Konfiguration, wo es gehört) – michael

8

Die java.util.logging.FileHandler könnte ihre Arbeit für Sie erledigen. Der folgende Codeausschnitt zeigt ein einfaches Beispiel, wie die Protokollierung Ziel programmatisch tun gesetzt:

Logger logger = Logger.getLogger("my.logger.name"); 
    try { 
     FileHandler handler = new FileHandler("application.log", true); 
     logger.addHandler(handler); 
    } catch (IOException e) { 
     throw new IllegalStateException("Could not add file handler.", e); 
    } 
    logger.info("Hello Logger!");