ngbaits-demo/src/main/java/com/idata/tools/ngbatisdemo/log/YLogger.java
2025-03-18 09:02:50 +08:00

237 lines
9.2 KiB
Java

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");
}
}
}