【发布时间】:2025-12-14 07:10:01
【问题描述】:
我有一个使用多个 log4j 2.11 DailyRollingFileAppenders 的项目。本质上,每个客户端进程都有自己的附加程序。多年来它一直运行良好,但现在我在配置中添加了一些附加程序,它不尊重最新的附加程序,并且日志数据被转储到根附加程序中。
我已经比较了 appender 配置中的有效配置和新配置,我并没有在它们之间搞砸任何东西(比如忘记了一些东西)。
您可以拥有的数量似乎是有限的,但我似乎无法找到这种情况。您可以拥有的活动附加程序的数量是否有限制?可以调整吗?
这是配置的一个片段 - 但想象一下其中有 28 个 RollingFileAppender:
# Define the root logger with appender file
log4j.rootLogger = INFO, CON, queue
# Define the file appender
log4j.appender.queue=org.apache.log4j.RollingFileAppender
log4j.appender.queue.File=log/QueueListener.log
log4j.appender.queue.MaxFileSize=2MB
log4j.appender.queue.MaxBackupIndex=5
# Define the layout for file appender
log4j.appender.queue.layout=org.apache.log4j.PatternLayout
log4j.appender.queue.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %C{1}:%L - %m%n
# Direct log messages to CON
log4j.appender.CON=org.apache.log4j.ConsoleAppender
log4j.appender.CON.Target=System.out
log4j.appender.CON.layout=org.apache.log4j.PatternLayout
log4j.appender.CON.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %C{1}:%L - %m%n
# demo Appender
log4j.appender.demo=org.apache.log4j.DailyRollingFileAppender
log4j.appender.demo.DatePattern='.'yyyy-MM-dd
log4j.appender.demo.File=log/demo/demo.log
log4j.appender.demo.layout=org.apache.log4j.PatternLayout
log4j.appender.demo.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %C{1}:%L - %m%n
log4j.category.demo=INFO, CON, demo
log4j.additivity.demo=false
# client_1 Appender
log4j.appender.client_1=org.apache.log4j.DailyRollingFileAppender
log4j.appender.client_1.DatePattern='.'yyyy-MM-dd
log4j.appender.client_1.File=log/client_1/client_1.log
log4j.appender.client_1.layout=org.apache.log4j.PatternLayout
log4j.appender.client_1.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %C{1}:%L - %m%n
log4j.category.client_1=INFO, CON, client_1
log4j.additivity.client_1=false
我在路由定义中也看到了附加程序,但我以前没有这样做过。
【问题讨论】: