以下案例:我编写了一个自定义适配器来支持两个textareas中的日志输出重定向(使用textArea.setText()覆盖受保护的void append(LoggingEvent事件)方法)。
现在的问题是log 4j fileAppender由于console和statusMessageAdapter而创建了重复的日志输出。当我删除其中一个时,只添加了一个日志,但重定向到textareas不再起作用。 当我关闭包foo.bar的可加性时,textarea不再填充。
log4j.rootLogger=DEBUG,console,textarea,stdLog,errorLog
log4j.additivity.rootLogger=false
log4j.appender.console = org.apache.log4j.ConsoleAppender
log4j.appender.console.Target=System.out
log4j.appender.console.layout = org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
log4j.appender.console.Threshold=INFO
#textarea appender
log4j.appender.textarea = foo.bar.StatusMessageAppender
log4j.appender.textarea.layout=org.apache.log4j.PatternLayout
log4j.appender.textarea.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
log4j.appender.textarea.Threshold=INFO
#file appender
log4j.appender.stdLog=org.apache.log4j.DailyRollingFileAppender
log4j.appender.stdLog.DatePattern = '.'yyyy-MM-ww
log4j.appender.stdLog.File = log/log.txt
log4j.appender.stdLog.layout = org.apache.log4j.PatternLayout
log4j.appender.stdLog.layout.ConversionPattern = [%d{ISO8601}]%5p%6.6r[%t]%x(%F:%L) - %m%n
log4j.appender.stdLog.Threshold=DEBUG
#file appender
log4j.appender.errorLog = org.apache.log4j.DailyRollingFileAppender
log4j.appender.errorLog.DatePattern = '.'yyyy-MM-ww
log4j.appender.errorLog.File = log/errorlog.txt
log4j.appender.errorLog.layout = org.apache.log4j.PatternLayout
log4j.appender.errorLog.layout.ConversionPattern = [%d{ISO8601}]%5p%6.6r[%t]%x(%F:%L) - %m%n
log4j.appender.errorLog.Threshold=ERROR
#Specific log levels
log4j.category.foo.bar= TRACE
log4j.category.foo.bar.utils= INFO
#log4j.additivity.foo.bar = false