如何禁用一个类或整个包的记录器?

ehxuflar  于 2021-07-08  发布在  Java
关注(0)|答案(4)|浏览(568)

我正在使用apachecommons日志™. 现在我想用 SimpleLog 实现,但当我更改级别时,来自库的记录器出现了。我想让它关掉它们。
有没有一种简单的方法来更改整个包的日志级别(log4j可以做到这一点)?
我已经试过了
org.apache.commons.logging.simplelog.log.foo=致命
在要禁用的属性文件中(设置为致命是可以的) foo logger,但它不工作(foo是输出中出现的logger的名称: [INFO] foo - Message ).

ldxq2e6h

ldxq2e6h1#

您应该使用:

log4j.logger.foo = OFF

请注意,“foo”不需要是包或类,而是任意字符串。例如,我们有一个名为“sql”的记录器,它是从许多类调用的。

mcdcgff0

mcdcgff02#

使用commons logging中的simplelog需要两个配置文件,除非您使用的是某些系统属性。这些文件是:commons-logging.properties和simplelog.properties。您所指示的日志级别属性应该放在simplelog.properties中,例如:

org.apache.commons.logging.simplelog.log.foo=warn

其中“foo”是记录器名称。通常,这是包或包和类名。在下面的示例中,com.stackoverflow.utils包下的所有内容都设置为info,而com.stackoverflow.servlet.dispatcher专门设置为warn:

org.apache.commons.logging.simplelog.log.com.stackoverflow.utils=info 
org.apache.commons.logging.simplelog.log.com.stackoverflow.servlet.Dispatcher=warn

commons-logging.properties文件应包含:

org.apache.commons.logging.Log=org.apache.commons.logging.impl.SimpleLog

这里和这里的文件。

mxg2im7a

mxg2im7a3#

如果您使用Spring Boot,可以设置为 OFF 在application.properties文件中。例子:

logging.level.org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer=OFF

参考文献:https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-logging.html#boot-具有自定义日志级别

xdnvmnnf

xdnvmnnf4#

在log4j中,您可以为由字符串标识的指定包、类或记录器指定日志级别。只需在log4j.properties文件中编写:

log4j.logger.<your package> = DEBUG|INFO|OFF|WARN...

相关问题