tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
2
ZUGRIFFE
1480
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von takidoso
    takidoso takidoso ist offline Mitglied Brillant
    Registriert seit
    Aug 2004
    Ort
    Kömigstein
    Beiträge
    911
    Hallo und Halli,
    ich habe folgende Situation:
    Eine Art Rahmenprogramm welches einen simplen Plugin Mechanismus aufweist ruft unter anderem 2 kLeine Anwendungen auf die Log4J verwenden.
    Ich habe für beide Programmen jeweils verschiedene Properties-Dateien für die Log-Informationen bereitgestellt, die ich in jedem der beiden Programme innerhalb ihrer Initialisierungsphase mit org.apache.log4j.PropertyConfigurator.configureAndWatch(propertiesFileName); "bekannt gebe".
    Nun passiert es jedoch bedauerlicherweise, dass vornehmlich Log-Einträge munter in einer Datei auftreten, wobei angemerkt sei, dass beide Applikationen in extra Threads durchaus auch parallel laufen.
    Jetzt Meine Frage: Kann ich mit geschickter (besserer) log4j-Konfiguration dem Logger die Einträge in applikationssgetrennte Dateien schreiben lassen? Wie müsste das aussehen? Und warum packt der Logger das ganze in 2 Dateien aber mischt es dennoch (s. angehängte Beispiel logs eines Ablaufes).

    Meine bisherigen -Propertiesdateien sehen folgendermaßen aus...
    Datei der einen Anwendung trägt den namen log4j.properties
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    
    log4j.rootLogger=TRACE, MeinDaRoFiAppender
     
    log4j.de.equens.sisu.swiftsplitting.SwiftSplitter         = TRACE
    log4j.de.equens.sisu.xmlsplitting.XmlSplitter             = TRACE
    log4j.de.equens.sisu.xmlsplitting.data.XmlSplitterHandler = TRACE
    log4j.logger.net.sourceforge.wife.swift.SwiftParser2      = OFF
    log4j.logger.net.sourceforge.wife                         = OFF
     
    log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender 
    log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout 
    log4j.appender.CONSOLE.layout.ConversionPattern = %-5p %F:%L %M() %m %n 
     
    log4j.appender.MeinDaRoFiAppender=org.apache.log4j.DailyRollingFileAppender
    log4j.appender.MeinDaRoFiAppender.datePattern='.'yyyy-MM-dd
    log4j.appender.MeinDaRoFiAppender.file=logs/swiftsplitter.log
    log4j.appender.MeinDaRoFiAppender.layout=org.apache.log4j.PatternLayout
    log4j.appender.MeinDaRoFiAppender.layout.ConversionPattern=%d{ISO8601} %-5p [%t] %c: %m%n
     
     
    log4j.appender.LALA=org.apache.log4j.ConsoleAppender 
    log4j.appender.LALA.layout=org.apache.log4j.PatternLayout 
    log4j.appender.LALA.layout.ConversionPattern = %d{ISO8601} %-5p %F:%L %M() %m %n

    Und Datei der anderen Anwendung hat den Namen log4XmlSplit.properties
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    
    log4j.rootLogger=TRACE, MeinDaRoFiAppender
     
    log4j.de.equens.sisu.xmlsplitting.data.XmlSplitterHandler = TRACE
    log4j.de.equens.sisu.xmlsplitting.XmlSplitter             = TRACE
     
    log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender 
    log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout 
    log4j.appender.CONSOLE.layout.ConversionPattern = %-5p %F:%L %M() %m %n 
     
    log4j.appender.MeinDaRoFiAppender=org.apache.log4j.DailyRollingFileAppender
    log4j.appender.MeinDaRoFiAppender.datePattern='.'yyyy-MM-dd
    log4j.appender.MeinDaRoFiAppender.file=logs/xmlsplitter.log
    log4j.appender.MeinDaRoFiAppender.layout=org.apache.log4j.PatternLayout
    log4j.appender.MeinDaRoFiAppender.layout.ConversionPattern=%d{ISO8601} %-5p [%t] %c: %m%n
     
     
    log4j.appender.LALA=org.apache.log4j.ConsoleAppender 
    log4j.appender.LALA.layout=org.apache.log4j.PatternLayout 
    log4j.appender.LALA.layout.ConversionPattern = %d{ISO8601} %-5p %F:%L %M() %m %n

    Ursprünglich dachte ich man könne es auf diese Weise tun aber wie gesagt, ich bekomme eine Zuwammenwürfelung
    Ich habe dazu im Netz gegoogelt und fand http://java2.5341.com/msg/32707.html.
    Jedoch habe ich den Eindruck, dass dies nur für die verchiedenen Log-Level funktioniert.
    Oder bleibt mir am Ende doch nicht ersparrt selbst einen Appender ähnlich wie in
    http://www.tutorials.de/forum/java/3...mit-log4j.html vorgeschlagen zu schreiben? Ich selbst wüde natürlich eine reine Konfiguratione vorziehen.

    Mit bestem Dank für Tips und Aufhellung meines Verständnisses


    Takidoso
    Angehängte Dateien Angehängte Dateien
     

  2. #2
    Avatar von takidoso
    takidoso takidoso ist offline Mitglied Brillant
    Registriert seit
    Aug 2004
    Ort
    Kömigstein
    Beiträge
    911
    nun habe ich das noch ein wenig weiter versucht und mir gedacht, veilleicht müsste ich die Appender ähnlich wie beim Root-Logger in der Konfiguration mit Komma getrennt nach dem Level schreiben. Das hat irgendwie nichts gebracht
    dann habe ich mal aus Spaß alles in ein log-File geschrieben in ähnlicher Form nun schreibt er mir gar nichts mehr raus ich hat noch nicht einmal eine log-Datei geschrieben
    Also irgendwie ist dier Log4J-Logger unglaublich unintuitiv was die Konfiguration angeht, zumindest habe ich immernoch nicht verstanden wie eigetnlich ein Appender erfolgreich mit einem Logger assoziiert wird (mal abgesehen vom RootLogger). Und Beispiele so wie ich mir das dachte, finde ich leider auch keine. Andererseits den Hinweis im Kurzhandbuch das das geht, aber leider nicht genau wie
    Mein momentn letzter Versuch alles in einem Konfigurationsfile zu haben sieht so aus:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    
    log4j.rootLogger=TRACE
     
    log4j.de.equens.sisu.swiftsplitting.SwiftSplitter         = TRACE, SwiftSplitDaRoFiAppender
    log4j.de.equens.sisu.xmlsplitting.XmlSplitter             = TRACE, SwiftSplitDaRoFiAppender
    log4j.logger.net.sourceforge.wife.swift.SwiftParser2      = OFF
    log4j.logger.net.sourceforge.wife                         = OFF
     
    log4j.de.equens.sisu.xmlsplitting.data.XmlSplitterHandler = TRACE, XmlSplitDaRoFiAppender
    log4j.de.equens.sisu.xmlsplitting.XmlSplitter             = TRACE, XmlSplitDaRoFiAppender
     
     
    log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender 
    log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout 
    log4j.appender.CONSOLE.layout.ConversionPattern = %-5p %F:%L %M() %m %n 
     
    log4j.appender.SwiftSplitDaRoFiAppender=org.apache.log4j.DailyRollingFileAppender
    log4j.appender.SwiftSplitDaRoFiAppender.datePattern='.'yyyy-MM-dd
    log4j.appender.SwiftSplitDaRoFiAppender.file=logs/swiftsplitter.log
    log4j.appender.SwiftSplitDaRoFiAppender.layout=org.apache.log4j.PatternLayout
    log4j.appender.SwiftSplitDaRoFiAppender.layout.ConversionPattern=%d{ISO8601} %-5p [%t] %c: %m%n
     
     
    log4j.appender.XmlSplitDaRoFiAppender=org.apache.log4j.DailyRollingFileAppender
    log4j.appender.XmlSplitDaRoFiAppender.datePattern='.'yyyy-MM-dd
    log4j.appender.XmlSplitDaRoFiAppender.file=logs/xmlsplitter.log
    log4j.appender.XmlSplitDaRoFiAppender.layout=org.apache.log4j.PatternLayout
    log4j.appender.XmlSplitDaRoFiAppender.layout.ConversionPattern=%d{ISO8601} %-5p [%t] %c: %m%n
     

  3. #3
    Avatar von takidoso
    takidoso takidoso ist offline Mitglied Brillant
    Registriert seit
    Aug 2004
    Ort
    Kömigstein
    Beiträge
    911
    Ich habe da nochmal in diesem Forum geschaut...
    http://www.tutorials.de/forum/java/248885-log4j.html
    Da hatte jemand offenbar das selbe Problem wie ich, doch keiner scheint da bisher Hinweise darauf zu haben, obgleich ich dachte, dass dies ein recht naheliegendes Anliegen sei.
     

Ähnliche Themen

  1. Problem mit Log4J
    Von ManuelHegemann im Forum Java Grundlagen
    Antworten: 2
    Letzter Beitrag: 01.09.10, 10:23
  2. Antworten: 8
    Letzter Beitrag: 13.02.09, 08:26
  3. Log4j Threading Problem
    Von psycotis im Forum Java
    Antworten: 4
    Letzter Beitrag: 18.12.08, 18:28
  4. Frage/Problem bei Log4J
    Von Chris2610 im Forum Enterprise Java (JEE, J2EE, Spring & Co.)
    Antworten: 15
    Letzter Beitrag: 17.09.08, 20:20
  5. Problem mit log4j
    Von kaMii im Forum Java
    Antworten: 0
    Letzter Beitrag: 21.09.07, 11:09