如何从Java代码禁用log4j日志记录 [英] How to disable log4j logging from Java code

查看:116
本文介绍了如何从Java代码禁用log4j日志记录的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用使用log4j写入日志的旧库。我的默认log4j.properties文件将日志定向到控制台,但在我的主程序的某些特定功能中,我想完全禁用日志记录(来自所有类)。

I use a legacy library that writes logs using log4j. My default log4j.properties file directs the log to the console, but in some specific functions of my main program, I would like to disable logging altogether (from all classes).

我试过这个:

Logger.getLogger(BasicImplementation.class.getName()).setLevel(Level.OFF);

其中BasicImplementation是执行日志记录的主要类之一,但它不起作用 - 日志仍然写入控制台。

where "BasicImplementation" is one of the main classes that does logging, but it didn't work - the logs are still written to the console.

这是我的log4j.properties:

Here is my log4j.properties:

log4j.rootLogger=warn, stdout
log4j.logger.ac.biu.nlp.nlp.engineml=info, logfile
log4j.logger.org.BIU.utils.logging.ExperimentLogger=warn

log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = %-5p %d{HH:mm:ss} [%t]: %m%n

log4j.appender.logfile = ac.biu.nlp.nlp.log.BackupOlderFileAppender
log4j.appender.logfile.append=false
log4j.appender.logfile.layout = org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern = %-5p %d{HH:mm:ss} [%t]: %m%n
log4j.appender.logfile.File = logfile.log


推荐答案

所以,你定义了3个记录器,包括root:

So, you have 3 loggers defined, including the root:

log4j.rootLogger=warn, stdout
log4j.logger.ac.biu.nlp.nlp.engineml=info, logfile
log4j.logger.org.BIU.utils.logging.ExperimentLogger=warn

不幸的是,要以编程方式禁用它们,您需要指定所有它们代码:

Unfortunately, to disable them programatically, you need to specify ALL OF THEM in the code:

Logger.getLogger("ac.biu.nlp.nlp.engineml").setLevel(Level.OFF);
Logger.getLogger("org.BIU.utils.logging.ExperimentLogger").setLevel(Level.OFF);
Logger.getRootLogger().setLevel(Level.OFF);

这里是如何将其重置回配置文件中的设置。

Here's how to reset it back to what's set in the config file.

这篇关于如何从Java代码禁用log4j日志记录的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆