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

Java 如何禁用类或整个包的记录器?,java,apache-commons-logging,Java,Apache Commons Logging,我正在使用。现在我想使用实现,但当我更改级别时,来自库的记录器出现了。我想让它把它们关掉 是否有一种简单的方法来更改整个包的日志级别(Log4j可以做到这一点) 我已经试着设置 org.apache.commons.logging.simplelog.log.foo=fatal 在要禁用的属性文件中(设置为fatal是可以的)foo记录器,但它不起作用(foo是输出中出现的记录器名称:[INFO]foo-Message)。在Log4j中,您可以为由字符串标识的指定包、类或记录器指定日志级别。只需

我正在使用。现在我想使用实现,但当我更改级别时,来自库的记录器出现了。我想让它把它们关掉

是否有一种简单的方法来更改整个包的日志级别(Log4j可以做到这一点)

我已经试着设置

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


在要禁用的属性文件中(设置为fatal是可以的)
foo
记录器,但它不起作用(foo是输出中出现的记录器名称:
[INFO]foo-Message
)。

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

log4j.logger.<your package> = DEBUG|INFO|OFF|WARN...
log4j.logger.=调试|信息|关闭|警告。。。

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

log4j.logger.<your package> = DEBUG|INFO|OFF|WARN...
log4j.logger.=调试|信息|关闭|警告。。。
您应该使用:

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

您应该使用:

log4j.logger.foo = OFF

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

使用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

文档和。

使用Commons日志中的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

文档和。

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

logging.level.org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer=OFF
参考:

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

logging.level.org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer=OFF
参考:

如果您有时间,我建议您看看SLF4J。-它充当实际日志框架(包括log4j)之上的元层。这很容易设置。是-使用log4j可以在包级别设置日志记录级别。它还支持“关闭”级别。谢谢,我希望我能批准这个答案,但这是一个评论。如果你有时间,我建议你看看SLF4J。-它充当实际日志框架(包括log4j)之上的元层。这很容易设置。是-使用log4j可以在包级别设置日志记录级别。它还支持“关闭”级别。谢谢,我希望我能批准这个答案,但这是一个评论…我知道。问题是如何在SimpleLog中执行类似“log4j.logger.=DEBUG | INFO | OFF | WARN…”之类的操作。我创建了一个小项目并测试了包级日志控件,它可以根据需要工作。我已经更新了我的示例来说明分层日志级别控制。如果它在您的环境中不以这种方式工作,则可能无法检测到simplelog.properties。当您更改其中的其他值时,是否会影响输出(例如,启用/禁用日期w/org.apache.commons.logging.simplelog.showdatetime=true/false)?我知道。问题是如何在SimpleLog中执行类似“log4j.logger.=DEBUG | INFO | OFF | WARN…”之类的操作。我创建了一个小项目并测试了包级日志控件,它可以根据需要工作。我已经更新了我的示例来说明分层日志级别控制。如果它在您的环境中不以这种方式工作,则可能无法检测到simplelog.properties。当您更改其中的其他值时,是否会影响输出(例如,启用/禁用日期w/org.apache.commons.logging.simplelog.showdatetime=true/false)?我想在simplelog中执行此操作。但我看到将其更改为log4j是一个解决方案。log4j是世界上使用最多的日志框架。只要坚持每个人都使用的东西,你就可以从插件、自定义附加器、过滤器等中获益。关键术语是
OFF
,这在最受欢迎的答案中缺失了。我想在simplelog中这样做。但我看到将其更改为log4j是一个解决方案。log4j是世界上使用最多的日志框架。只要坚持每个人都使用的东西,你就可以从插件、自定义附加器、过滤器等中获益。关键术语是
OFF
,这是最热门答案中缺少的。我如何在我的类中获得此记录器的句柄?我如何在我的类中获得此记录器的句柄?