tutorials.de Buch-Aktion 02/2012
Like Tree1Danke
  • 1 Beitrag von Thomas Darimont
ERLEDIGT
JA
ANTWORTEN
2
ZUGRIFFE
366
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Registriert seit
    Oct 2008
    Beiträge
    6
    Hallo Community,

    ich habe mir eine Konfigurationsdatei log4j.xml zusammen gebaut, die verschiedene Logger beinhaltet.

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    
    <logger name="MISC" additivity="false">
    <level value="debug" />
    <appender-ref ref="miscMessagesLog" />
    </logger> 
      
    <logger name="LOGGER1" additivity="false">
    <level value="debug" />
    <appender-ref ref="logger1MessagesLog" />
    </logger>
      
    <logger name="LOGGER2" additivity="false">
    <level value="debug" />
    <appender-ref ref="logger2MessagesLog" />
    </logger>

    Nun bekomme ich in einer Methode in der ich loggen möchte entweder LOGGER1, LOGGER2 oder irgend etwas anderes übergeben. Für "irgend etwas anderes" soll dann der Logger "MISC" verwendet werden (im produktiven Code sind es noch viele verschiedene Logger mehr, deshalb kann/möchte ich es nicht über eine if-else-Bedingung machen). Ich hatte nun anfangs gehofft, dass ich "null" oder etwas ähnliches zurück bekomme, wenn ich über Logger.getLog(parameter) den Logger mit einem nicht vorhandenen Konfigurationsnamen aufrufe, das ist aber leider nicht der Fall, wie mich dann die API aufgeklärt hat.

    Zur Veranschaulichung hier der Code, der aber leider nicht funktioniert:
    Code :
    1
    2
    3
    4
    
    messageLogger = Logger.getLog(parameter);
    if(messageLogger == null) {
      messageLogger = Logger.getLog("MISC");
    }

    Hat jmd. eine Idee wie das anders funktionieren kann?

    Vielen Dank im Voraus und Gruß,
    Manuel
     

  2. #2
    Registriert seit
    Jun 2002
    Ort
    Saarbrücken (Saarland)
    Beiträge
    9.724
    Blog-Einträge
    29
    Hallo,

    wie wäre es denn mit:
    Code java:
    1
    
    Logger.getRootLogger().getLoggerRepository().exists("MISC");

    Gruß Tom
    ManuelHegemann bedankt sich. 
    Java rocks!
    How to become a good Java Programmer?
    Does IT in Java and .Net
    The only valid measurement of code quality: WTFs / minute
    Blog
    Xing
    Twitter

  3. #3
    Registriert seit
    Oct 2008
    Beiträge
    6
    Hallo Tom,

    vielen Dank für deine schnelle Antwort. Leider bekomme ich mit deinem vorgeschlagenen Code immer "null" zurück, egal ob der Name in der Konfigurationsdatei existiert oder nicht...

    Gruß,
    Manuel

    ***UPDATE***
    Es war noch ein Fehler in der Konfiguration meiner Umgebung. Vielen Dank, es funktioniert!
    Geändert von ManuelHegemann (01.09.10 um 11:05 Uhr)
     

Ähnliche Themen

  1. Antworten: 8
    Letzter Beitrag: 13.02.09, 08:26
  2. Log4j Threading Problem
    Von psycotis im Forum Java
    Antworten: 4
    Letzter Beitrag: 18.12.08, 18:28
  3. Frage/Problem bei Log4J
    Von Chris2610 im Forum Enterprise Java (JEE, J2EE, Spring & Co.)
    Antworten: 15
    Letzter Beitrag: 17.09.08, 20:20
  4. Mal wieder ein Log4J problem
    Von takidoso im Forum Java
    Antworten: 2
    Letzter Beitrag: 11.08.08, 17:00
  5. Problem mit log4j
    Von kaMii im Forum Java
    Antworten: 0
    Letzter Beitrag: 21.09.07, 11:09