当前位置: 首页 > 知识库问答 >
问题:

使用logback打印日志中的调用类名

龙涵蓄
2023-03-14

我在记录调用类的类名时遇到问题。我在logback中编写了日志实用程序类。出于性能原因,我使用单例模式创建了记录器实用程序。但是,当我从其他类调用日志语句时,我会打印实用工具的类名,而不是调用类。

private static LogUtil logutil =null;   
    public static LogUtil getInstance(){        
        if(logutil==null){
            logutil = new LogUtil();
        }
        return logutil;

    }
protected static final Logger LOGGER = (Logger)LoggerFactory.getLogger("MyModule");

public void info(String Message){
        if(LOGGER.isInfoEnabled()){
            LOGGER.info(Message);

        }
}

测试课就像

public class LogUtilTest {
public static void testforlogging(){
logutil.info(“Im Logging this message”);
}
}

我得到的输出如下打印而不是LogUtilTest,我需要帮助记录我的调用类名

2014-04-14 16:47:21信息[main]MyModule[LogUtil.info:42]类名[com.commonutil.logging.LogUtil]-方法[testforlog]-No of Person's data-100001

共有1个答案

殳智志
2023-03-14

您可以使用线程访问当前调用堆栈。currentThread()。getStackTrace()。它返回一个堆栈跟踪元素数组。第一项始终表示getStackTrace()。第二个是调用它的方法,第三个是您想要的方法

Thread.currentThread().getStackTrace()[2].getClassName()

返回调用方法的类的类名。

 类似资料:
  • 当我在Wildfly10上部署war时,Log4j日志不会打印。1.0.最终的不过,它与Tomcat配合得很好。 我在网上发现Wildfly使用log4j,所以我在jboss部署结构中排除了log4j。下面的xml避免了依赖冲突,但没有运气。 下面是我log4.properties档案 下面是我的pom。xml依赖关系 下面是我部署战争时得到的错误日志。 我正在尝试运行独立的完整ha。xml

  • 当我运行这段代码时,没有任何东西被打印到控制台。我应该如何使用logp?

  • 问题内容: 我的应用程序有一个自制的日志记录类,我将在后台使用log4j进行迁移。但是,由于我正在使用homebrew类将应用程序的其余日志记录语句传递给log4j,因此输出语句被记录为来自包装类而不是源类。 除了为每个log语句创建新的org.apache.log4j.Logger实例之外,是否有办法确保显示“正确的”源?我也尝试过使用Logger.log(String callerFQCN,P

  • 环境:Java、Selenium webdriver、Maven、testNG、Log4J、Eclipse XML 我添加了log4j。src/main/resources下的属性。 在基本测试中。java,我在导入log4j后添加了两行。 日志信息(“方法设置”); 日志信息(“方法拆除”); 我的目标是能够使用日志。了解整个项目。在此之前,我只想通过在basetest类中导入log4j log

  • SLF4J 提供了 MDC (Mapped Diagnostic Contexts)功能,可以支持用户定义和修改日志的输出格式以及内容。本文将介绍 SOFATracer 集成的 SLF4J MDC功能,方便用户在只简单修改日志配置文件的前提下输出当前 SOFATracer 上下文 TraceId 以及 SpanId 。 使用前提 为了在应用中的日志正确打印 TraceId 和 SpanId 参数,

  • 根据spring boot文档(最新版本),它提到spring boot在内部使用logback。 我使用了log4j启动器,如下所述,不包括logback 例如,如果下面的命令在调试模式下运行(假设sboot1是我的uber jar) 我没有得到调试日志,这些日志是之前使用logback生成的,logback显示了“排除”和“包含”以及其他必要的信息。 当使用其他日志框架(如log4j)时,如何