java - 获取当前类/bean 的 LogLevel

标签 java logging jakarta-ee apache-commons java.util.logging

我在类里面登录时使用了以下方法:

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;    
...
private static Log log = LogFactory.getLog(MyClass.class);
...
log.debug("...");

我注意到,无论应用什么日志级别,所有日志语句总是会执行。我不想在不需要时执行与调试相关的语句(这里性能是一个问题)。

所以我正在寻找这样的东西:

if (LogLevel == debug) {
   log.debug("...");
   ...
}

如何获取该类当前使用的 LogLevel?

最佳答案

公共(public)日志包中的每个日志实例都可以告诉您是否启用了特定级别。使用此代码:

if ( log.isDebugEnabled() ) 
{
    // Debug log statements
}

检查 Commons Logging JavaDoc获取更多信息。

关于java - 获取当前类/bean 的 LogLevel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4377468/

相关文章:

按值调用与按名称调用在 Scala 日志记录库中的性能

testing - 如何向日志监听器添加一些额外的列?

java - PDF 文件返回为使用 Java(Java EE) 创建和下载的不受支持的格式

jakarta-ee - Java EE 容器是否会自动关闭注入(inject)的 EntityManagerFactory?

Java 的声音 API 不适用于所有 .WAV 文件?

java - spring 作用域代理和 JAXB

java - 如何在 Spring 中获取单例 Controller 的原型(prototype) bean?

java - docker容器之间的gRPC通信

java - log4j - 如何限制附加程序的包/类的日志

java - 运行简单的 spring 应用程序时出错