package com.idata.tools.ngbatisdemo.log; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.slf4j.spi.LocationAwareLogger; /** * @Description: Y 日志 * @Author: li-chuan-guo * @Date: 2024-09-24 14:52 **/ public class YLogger { private final Logger logger; private final static String SPLIT_STR = "&"; private static final String FQCN = YLogger.class.getName(); public YLogger(Class clazz) { this.logger = LoggerFactory.getLogger(clazz); } /** * 信息日志 * * @param clazz 类信息,必填 * @param methodName 方法名称, 必填 * @param paramStr 参数串,非必填 * @param responseStr 响应串,非必填 * @param message 日志信息,必填 * @param extraArgs 额外的参数,非必填 */ public void info(Class clazz, String methodName, String paramStr, String responseStr, String message, String... extraArgs) { try { String className = clazz.getName(); StringBuilder sb = new StringBuilder(); sb.append(className).append(SPLIT_STR); sb.append(methodName == null ? "" : methodName).append(SPLIT_STR); sb.append(paramStr == null ? "" : paramStr).append(SPLIT_STR); sb.append(responseStr == null ? "" : responseStr).append(SPLIT_STR); sb.append(message == null ? "" : message).append(SPLIT_STR); if (extraArgs != null) { // extraArg 合并成String后拼接 sb.append(String.join(",", extraArgs)); } if (this.logger instanceof LocationAwareLogger) { ((LocationAwareLogger) this.logger).log(null, FQCN, LocationAwareLogger.INFO_INT, sb.toString(), null, null); return; } logger.info(sb.toString()); } catch (Exception e) { logger.info("log info fail"); } } /** * 入参打印 * @param clazz 类信息,必填 * @param methodName 方法名称, 必填 * @param paramStr 参数串,非必填 * @param extraArgs 额外的参数,非必填 */ public void info(Class clazz, String methodName, String paramStr, String extraArgs) { try { String className = clazz.getName(); StringBuilder sb = new StringBuilder(); sb.append(className).append(SPLIT_STR); sb.append(methodName == null ? "" : methodName).append(SPLIT_STR); sb.append(paramStr == null ? "" : paramStr).append(SPLIT_STR); if (extraArgs != null) { // extraArg 合并成String后拼接 sb.append(String.join(",", extraArgs)); } if (this.logger instanceof LocationAwareLogger) { ((LocationAwareLogger) this.logger).log(null, FQCN, LocationAwareLogger.INFO_INT, sb.toString(), null, null); return; } logger.info(sb.toString()); } catch (Exception e) { logger.info("log info fail"); } } /** * 跟踪日志 * * @param clazz 类信息,必填 * @param methodName 方法名称, 必填 * @param paramStr 参数串,非必填 * @param extraArgs 额外的参数,非必填 */ public void trace(Class clazz, String methodName, String paramStr, String... extraArgs) { try { String className = clazz.getName(); StringBuilder sb = new StringBuilder(); sb.append(className).append(SPLIT_STR); sb.append(methodName == null ? "" : methodName).append(SPLIT_STR); sb.append(paramStr == null ? "" : paramStr).append(SPLIT_STR); // extraArgs 中添加参数 trace if (extraArgs != null) { // extraArg 合并成String后拼接; sb.append("trace,").append(String.join(",", extraArgs)); } else { sb.append("trace"); } if (this.logger instanceof LocationAwareLogger) { ((LocationAwareLogger) this.logger).log(null, FQCN, LocationAwareLogger.INFO_INT, sb.toString(), null, null); return; } logger.info(sb.toString()); } catch (Exception e) { logger.info("log info fail"); } } /** * 错误日志 * * @param clazz 类信息,必填 * @param methodName 方法名称 ,必填 * @param paramStr 参数串 ,必填 * @param errMsg 异常信息 ,必填 * @param e 异常堆栈 ,非必填 */ public void error(Class clazz, String methodName, String paramStr, String errMsg, Exception e) { try { String className = clazz.getName(); StringBuilder sb = new StringBuilder(); sb.append(className).append(SPLIT_STR); sb.append(methodName == null ? "" : methodName).append(SPLIT_STR); sb.append(paramStr == null ? "" : paramStr).append(SPLIT_STR); sb.append(errMsg == null ? "" : errMsg).append(SPLIT_STR); if (e != null) { if (this.logger instanceof LocationAwareLogger) { ((LocationAwareLogger) this.logger).log(null, FQCN, LocationAwareLogger.ERROR_INT, sb.toString(), null, e); return; } logger.error(sb.toString(), e); } else { if (this.logger instanceof LocationAwareLogger) { ((LocationAwareLogger) this.logger).log(null, FQCN, LocationAwareLogger.ERROR_INT, sb.toString(), null, null); return; } logger.error(sb.toString()); } } catch (Exception e2) { logger.error("log error fail"); } } /** * 错误日志 * * @param clazz 类信息,必填 * @param methodName 方法名称 ,必填 * @param paramStr 参数串 ,必填 * @param errMsg 异常信息 ,必填 */ public void error(Class clazz, String methodName, String paramStr, String errMsg) { try { String className = clazz.getName(); StringBuilder sb = new StringBuilder(); sb.append(className).append(SPLIT_STR); sb.append(methodName == null ? "" : methodName).append(SPLIT_STR); sb.append(paramStr == null ? "" : paramStr).append(SPLIT_STR); sb.append(errMsg == null ? "" : errMsg); if (this.logger instanceof LocationAwareLogger) { ((LocationAwareLogger) this.logger).log(null, FQCN, LocationAwareLogger.ERROR_INT, sb.toString(), null, null); return; } logger.error(sb.toString()); } catch (Exception e2) { logger.error("log error fail"); } } /** * 警告日志 * * @param clazz 类信息,必填 * @param methodName 方法名称 ,必填 * @param paramStr 参数串 ,必填 * @param warnMsg 警告信息 ,必填 * @param extraArgs 额外参数 ,非必填 */ public void warn(Class clazz, String methodName, String paramStr, String warnMsg, String... extraArgs) { try { String className = clazz.getName(); StringBuilder sb = new StringBuilder(); sb.append(className).append(SPLIT_STR); sb.append(methodName == null ? "" : methodName).append(SPLIT_STR); sb.append(paramStr == null ? "" : paramStr).append(SPLIT_STR); sb.append(warnMsg == null ? "" : warnMsg); if (extraArgs != null) { sb.append(SPLIT_STR).append(String.join(",", extraArgs)); } if (this.logger instanceof LocationAwareLogger) { ((LocationAwareLogger) this.logger).log(null, FQCN, LocationAwareLogger.WARN_INT, sb.toString(), null, null); return; } logger.warn(sb.toString()); } catch (Exception e) { logger.warn("log warn fail"); } } public void debug(Class clazz, String methodName, String paramStr, String debugMsg, String... extraArgs) { try { String className = clazz.getName(); StringBuilder sb = new StringBuilder(); sb.append(className).append(SPLIT_STR); sb.append(methodName == null ? "" : methodName).append(SPLIT_STR); sb.append(paramStr == null ? "" : paramStr).append(SPLIT_STR); sb.append(debugMsg == null ? "" : debugMsg); if (extraArgs != null) { sb.append(SPLIT_STR).append(String.join(",", extraArgs)); } if (this.logger instanceof LocationAwareLogger) { ((LocationAwareLogger) this.logger).log(null, FQCN, LocationAwareLogger.WARN_INT, sb.toString(), null, null); return; } logger.debug(sb.toString()); } catch (Exception e) { logger.debug("log debug fail"); } } }