tomcat启动时,log4j的奇怪问题

来源:百度知道 编辑:UC知道 时间:2024/06/08 02:05:11
问题如下,恳请赐教
log4j:ERROR Attempted to append to closed appender named [R]
配置如下:
log4j.rootLogger = DEBUG, FILE
log4j.appender.FILE = org.apache.log4j.RollingFileAppender
log4j.appender.FILE.File=/var/testlog
log4j.appender.FILE.MaxFileSize=4000KB
log4j.appender.FILE.Append=true
log4j.appender.FILE.MaxBackupIndex=10
log4j.appender.FILE.layout = org.apache.log4j.PatternLayout
log4j.pattern1 = %-4r [%t] %-5p %c %x - %m%n
log4j.pattern2 = %-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n
log4j.pattern3 = %-d{yyyy-MM-dd HH:mm:ss} - %c -%-4r [%t] %-5p %c %x - %m%n
log4j.appender.FILE.layout.ConversionPattern = ${log4j.pattern2}

log4j的配置文件有冲突, 是否在你的classpath里面有其他的log4j的配置?

log4j 还允许日志记录请求打印到多个输出目的地,按 log4j 的叫法是输出源。一个记录器可以有多个输出源。一条log信息如果可被这个记录器处理,则该记录器会把这条信息送往每个它所拥有的输出源,以及层次结构中更高级的输出源。例如,根记录器以控制台作为输出源,则所有可被纪录的日志都将至少打印到控制台。

配置日志信息输出源,其语法为:

log4j.appender.appenderName = fully.qualified.name.of.appender.class log4j.appender.appenderName.option1 = value1 … log4j.appender.appenderName.option = valueN Log4j提供的appender有以下几种:

org.apache.log4j.ConsoleAppender(控制台)
org.apache.log4j.FileAppender(文件)
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)
org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)
org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
org.apache.log4j.SocketAppender (Socket)
org.apache.log4j.NtEventLogAppender (NT的Event Log)
org.apache.log4j.JMSAppender (电子邮件)
请注意,可以通过覆盖缺省行为,这样就不再附加累积的输出源:

log4j.additivity.loggerName=false注意,不要把一个输出源附加到多个记录器上,否则会得到“Attempted to append to