开发者社区 问答 正文

能给出一个Log4j2计算Location的示例代码吗?

能给出一个Log4j2计算Location的示例代码吗?

展开
收起
真的很搞笑 2024-05-13 19:46:05 44 分享 版权
1 条回答
写回答
取消 提交回答
  • 简单呀!看看这个

    public StackTraceElement calcLocation(final String fqcnOfLogger) {  
        if (fqcnOfLogger == null) {  
            return null;  
        }  
        // LOG4J2-1029 new Throwable().getStackTrace is faster than Thread.currentThread().getStackTrace().  
        final StackTraceElement[] stackTrace = new Throwable().getStackTrace();  
        boolean found = false;  
        for (int i = 0; i < stackTrace.length; i++) {  
            final String className = stackTrace[i].getClassName();  
            if (fqcnOfLogger.equals(className)) {  
                found = true;  
                continue;  
            }  
            if (found && !fqcnOfLogger.equals(className)) {  
                return stackTrace[i];  
            }  
        }  
        return null;  
    }
    
    2024-05-13 21:44:11
    赞同 1 展开评论