spring boot 避免logger 太多

论坛 期权论坛 脚本     
匿名技术用户   2021-1-3 14:39   11   0

package cn.kiiwii.framework.mybatis.util;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class LogUtil {



private LogUtil() {
super();
}

public static void trace(String msg) {
getLogger().trace(msg);
}

public static void debug(String msg) {
getLogger().debug(msg);
}

public static void info(String msg) {
getLogger().info(msg);
}

public static void warn(String msg) {
getLogger().warn(msg);
}

public static void error(String msg) {
getLogger().error(msg);
}

public static void error(String msg,Throwable t) {
getLogger().error(msg,t);
}

private static Logger getLogger() {
return LoggerFactory.getLogger(findCaller().getClassName());
}

private static StackTraceElement findCaller() {
// 获取堆栈信息
StackTraceElement[] callStack = Thread.currentThread().getStackTrace();

// 最原始被调用的堆栈信息
StackTraceElement caller = null;

// 日志类名称

String logClassName = LogUtil.class.getName();
// 循环遍历到日志类标识

int i = 0;
for (int len = callStack.length; i < len; i++) {
if (logClassName.equals(callStack[i].getClassName())) {
break;
}
}
//是的没有错,这是一个magic number!想知道为什么?开启你的堆栈,来寻找我的宝藏吧!by Luo
caller = callStack[i + 3];
return caller;
}
}

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP