gpt4 book ai didi

log4j - 使用 log4j 抑制屏幕输出

转载 作者:行者123 更新时间:2023-12-04 14:31:51 24 4
gpt4 key购买 nike

log4j 令人恼火的事情之一是它总是想将内容转储到屏幕上。如果我登录到一个文件,我不需要那个。我确定这是我设置 log4j.properties 文件的方式。解决所有这些配置问题令人沮丧! :-)

对于我目前正在调用 Balancer 的程序,这就是我进行记录器初始化的方式。也许这是错误的或什么。

static Logger log = Logger.getLogger(Balancer.class);

我的 log4j.properties 的部分转储:
log4j.rootLogger=fatal, stdout
log4j.logger.Balancer=fatal, rollingLog

# I still don't understand how category stuff works yet
log4j.category.Balancer=info, BalancerLog

#### First appender writes to console
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p %d [%t] (%F:%L) - %m%n

#### Second appender writes to a file
# Control the maximum log file size
# Archive log files (ten backups here)
log4j.appender.rollingLog=org.apache.log4j.RollingFileAppender
log4j.appender.rollingLog.File=default.log
log4j.appender.rollingLog.MaxFileSize=10000KB
log4j.appender.rollingLog.MaxBackupIndex=10
log4j.appender.rollingLog.layout=org.apache.log4j.PatternLayout
log4j.appender.rollingLog.layout.ConversionPattern=%5p %d [%t] (%F:%L) - %m%n

log4j.appender.BalancerLog=org.apache.log4j.RollingFileAppender
log4j.appender.BalancerLog.File=Balancer.log
log4j.appender.BalancerLog.MaxFileSize=100000KB
log4j.appender.BalancerLog.MaxBackupIndex=10
log4j.appender.BalancerLog.layout=org.apache.log4j.PatternLayout
log4j.appender.BalancerLog.layout.ConversionPattern=%5p %d [%t] (%F:%L) - %m%n

我知道 rootLogger 如何将内容发送到 stdout appender。是否有/dev/null 附加程序?你必须至少有一个 appender。

无论如何,如果不出意外,我现在的基本解决方法是将屏幕输出发送到/dev/null。顺便说一句,我的 Java 程序在预定的批处理环境(无 GUI)中运行。必须清理假脱机文件(是的,这是在 AS/400 上)有点痛苦,尽管这也可以自动化。

最佳答案

Is there a /dev/null appender?



是的。
log4j.appender.devnull=org.apache.log4j.varia.NullAppender
log4j.rootLogger=fatal, devnull

我不知道你从哪里得到的 log4j.category.*从但它不是我以前见过的东西,我会坚持只使用 appenderlogger .
log4j.logger.Balancer=fatal, rollingLog, BalancerLog

将发送 fatal名为 Balancer 的记录器的级别消息(没有包前缀)到rollingLog 和BalancerLog 附加程序。如果您将记录器级别更改为 info
log4j.logger.Balancer=info, rollingLog, BalancerLog

然后它会发送级别 info 的消息以及以上两个附加程序。您不能限制它以便 BalancerLog 获取 info及以上但滚动日志仅获取 fatal每个记录器的消息,但您可以在滚动日志附加程序上设置一个阈值,以便它只记录 fatal消息(无论它们来自哪个记录器)
log4j.appender.rollingLog=org.apache.log4j.RollingFileAppender
log4j.appender.rollingLog.Threshold=fatal
log4j.appender.rollingLog.File=default.log
# other parameters as before

关于log4j - 使用 log4j 抑制屏幕输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11832309/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com