Log4j'yi kullanarak birden çok günlük dosyasına yazarken yinelenen günlük iletileriyle ilgili sorun yaşıyorum. Şu andaLog4j: Çoklu günlükler, düzeyler ve ekleyiciler
benim foo.log
dosyada filanca adlı spesifik kaydedicisi için (yukarı ve) INFO
düzeyinde veri giriş yapmaya çalışıyorsanız ve am bar.log
dosyada tüm kaydediciler için (yukarı ve) sonra tüm WARN
seviye günlük mesajlarını . Bunun bir sonucu olarak
foo.log
dosyaya yazılmış (her satır iki kez açmış oldu) ve bazı hızlı araştırma sonra ben öneri bu benim özellikleri dosya için
log4j.additivity.foobar=false
eklemek oldu düzeltmek için bulundu.
bu sorun, yinelenen satırları durur halde, filanca logger'dan WARN
mesajı bar.log
dosyaya yazılır asla olmasıdır.
şöyle My log4j özellikleri dosyasıdır:
log4j.rootLogger = WARN, FOO, BAR
log4j.logger.foobar = INFO, FOO
log4j.additivity.foobar = false
log4j.appender.FOO = org.apache.log4j.RollingFileAppender
log4j.appender.FOO.layout = org.apache.log4j.PatternLayout
log4j.appender.FOO.layout.ConversionPattern = %d{ISO8601} %-5p %c ~ %m%n
log4j.appender.FOO.File = foo.log
log4j.appender.BAR = org.apache.log4j.RollingFileAppender
log4j.appender.BAR.layout = org.apache.log4j.PatternLayout
log4j.appender.BAR.layout.ConversionPattern = %d{ISO8601} %-5p %c ~ %m%n
log4j.appender.BAR.File = bar.log
herkes hala ben hem günlük dosyalarına günlük iletilerini yazabilirsiniz bilen (I additivity
özelliğini ayarlayarak başlamadan önce o yapıyordu gibi) ve mu yinelenen günlük mesajları engellemek?
Lütfen dikkat, bu sorunun basitleştirilmiş bir özetidir. Gerçek dünya senaryosunda birden logger ve ikiden fazla günlük dosyaları bu sorun iki kısımda çözülebilir
bu de tüm güzel ve, ama bu istendi değil şeydir. Bu nasıl kaydediciler tarafından ayırt edilir? orijinal soru sadece 'foobar' foo'ya gider ve foobar da dahil olmak üzere tüm logger'lar –
bar'a gider. Soru, 'foobar' logger'ının tüm' INFO' mesajlarının 'foo.log' dosyasına ve tüm' 'ye gittiği bir çözüm sorar. Tüm logger'lar için WARN' mesajları 'bar.log' dosyasına gider (ve ayrıca her bir günlük mesajının sadece bir kez uygun dosyaya yazıldığını). –
no, __all loggers__, sadece 'foobar' değil' bar.log''a gönderilir. : "Şu anda, foo.log dosyasındaki foobar" adlı foobar adlı özel logger 'INFO' düzey verilerini ve daha sonra bardaki __all loggers__ için tüm 'WARN' seviyesi log mesajlarını kaydetmeye çalışıyorum. log dosyası." –