Log4j和许多RollingFileAppender

Log4j和许多RollingFileAppender,log4j,rollingfileappender,Log4j,Rollingfileappender,我有一个使用多个log4j 2.11 DailRollingFileAppender的项目。本质上,每个客户端进程都有自己的appender。多年来,它一直运行良好,但现在我已经在配置中添加了一些附加器,它不尊重最新的附加器,日志数据被转储到根附加器中 我已经将appender配置与新配置进行了比较,我并没有把它们搞砸(比如忘了什么) 似乎你能拥有的数量是有限制的,但我似乎找不到这种情况。您可以拥有的活动附加器的数量是否有限制?可以调整吗 这里是配置的一小部分-但想象一下其中有28个滚动文件附加

我有一个使用多个log4j 2.11 DailRollingFileAppender的项目。本质上,每个客户端进程都有自己的appender。多年来,它一直运行良好,但现在我已经在配置中添加了一些附加器,它不尊重最新的附加器,日志数据被转储到根附加器中

我已经将appender配置与新配置进行了比较,我并没有把它们搞砸(比如忘了什么)

似乎你能拥有的数量是有限制的,但我似乎找不到这种情况。您可以拥有的活动附加器的数量是否有限制?可以调整吗

这里是配置的一小部分-但想象一下其中有28个滚动文件附加器:

# 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

我在路径定义中也列出了appender,但我以前没有这样做过。

我认为您需要在
log4j.rootLogger
中添加appender别名。所以根据你的配置剪报。你应该:

log4j.rootLogger = INFO, CON, queue, demo, client_1

我认为您需要在
log4j.rootLogger
中添加appender别名。所以根据你的配置剪报。你应该:

log4j.rootLogger = INFO, CON, queue, demo, client_1

谢谢jpllosa,这似乎在一定程度上起了作用。我确实看到一些根记录器片段出现在其他Appender中。我知道我可能有一些东西与某个特定的appender没有关联,看起来这些东西都在每个人的日志中,而不仅仅是根日志中。谢谢jpllosa,这似乎在其中的一部分起到了作用。我确实看到一些根记录器片段出现在其他Appender中。我知道我可能有一些东西与某个特定的appender没有关联,看起来这些东西都在每个人的日志中,而不仅仅是根日志中。