takidoso
Erfahrenes Mitglied
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
Und Datei der anderen Anwendung hat den Namen log4XmlSplit.properties
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/320124-dynamische-logfiles-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
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:
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:
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/320124-dynamische-logfiles-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