package cn.huge.module.utils;
|
|
import cn.huge.base.common.utils.JsonMapper;
|
import cn.huge.base.common.utils.ObjectUtils;
|
import org.slf4j.Logger;
|
import org.slf4j.LoggerFactory;
|
import org.springframework.web.context.request.RequestContextHolder;
|
import org.springframework.web.context.request.ServletRequestAttributes;
|
|
import javax.servlet.http.HttpServletRequest;
|
|
/**
|
* @title: 日志打印工具类
|
* @description: 日志打印工具类
|
* @company: hugeinfo
|
* @author: liyj
|
* @time: 2024-07-30 16:51:48
|
* @version: 1.0.0
|
*/
|
public class LogUtils {
|
|
/**
|
* 内部人员操作日志
|
*/
|
private static final Logger ctUserLogger = LoggerFactory.getLogger("ctUserLogger");
|
|
/**
|
* 内部组织架构操作日志
|
*/
|
private static final Logger ctUnitLogger = LoggerFactory.getLogger("ctUnitLogger");
|
|
/**
|
* 内部角色操作日志
|
*/
|
private static final Logger ctRoleLogger = LoggerFactory.getLogger("ctRoleLogger");
|
|
/**
|
* 外部用户操作日志
|
*/
|
private static final Logger paUserLogger = LoggerFactory.getLogger("paUserLogger");
|
|
private LogUtils() {
|
// 防止实例化
|
}
|
|
/**
|
* 封装info日志信息
|
* @param method 执行方法
|
* @param logmsg 日志信息
|
* @param reqData 请求数据
|
* @param repData 响应数据
|
* @return
|
*/
|
private static String getInfoLog(String method, String logmsg, Object reqData, Object repData){
|
// 获取请求id+端口
|
ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
|
HttpServletRequest request = attributes.getRequest();
|
String reqIP = request.getRemoteHost()+":"+request.getRemotePort();
|
// 封装日志输出格式
|
JsonMapper jsonMapper = new JsonMapper();
|
String reqJson = " ";
|
if (ObjectUtils.isNotEmpty(reqData)){
|
reqJson = jsonMapper.toJson(reqData);
|
}
|
String repJson = " ";
|
if (ObjectUtils.isNotEmpty(reqData)){
|
repJson = jsonMapper.toJson(repData);
|
}
|
return "reqMeth="+method+",logmsg="+logmsg+",reqIP="+reqIP+",reqJson="+reqJson+",respJson="+repData;
|
}
|
|
/**
|
* 封装error日志信息
|
* @param method 执行方法
|
* @param logmsg 日志信息
|
* @param reqData 请求数据
|
* @param e 报错信息
|
* @return
|
*/
|
private static String getErrorLog(String method, String logmsg, Object reqData, Exception e){
|
// 获取请求id+端口
|
ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
|
HttpServletRequest request = attributes.getRequest();
|
String reqIP = request.getRemoteHost()+":"+request.getRemotePort();
|
// 封装日志输出格式
|
JsonMapper jsonMapper = new JsonMapper();
|
String reqJson = " ";
|
if (ObjectUtils.isNotEmpty(reqData)){
|
reqJson = jsonMapper.toJson(reqData);
|
}
|
return "reqMeth="+method+",logmsg="+logmsg+",reqIP="+reqIP+",reqJson="+reqJson+",exception="+e;
|
}
|
|
/**
|
* 内部人员操作Info日志输出
|
* @param method 执行方法
|
* @param logmsg 日志信息
|
* @param reqData 请求数据
|
* @param repData 响应数据
|
*/
|
public static void ctUserLogInfo(String method, String logmsg, Object reqData, Object repData) {
|
String log = getInfoLog(method, logmsg, reqData, repData);
|
ctUserLogger.info(log);
|
}
|
|
/**
|
* 内部人员操作ERROR日志输出
|
* @param method 执行方法
|
* @param logmsg 日志信息
|
* @param reqData 请求数据
|
* @param e 报错信息
|
*/
|
public static void ctUserLogError(String method, String logmsg, Object reqData, Exception e) {
|
String log = getErrorLog(method, logmsg, reqData, e);
|
ctUserLogger.error(log, e);
|
}
|
|
/**
|
* 内部组织操作Info日志输出
|
* @param method 执行方法
|
* @param logmsg 日志信息
|
* @param reqData 请求数据
|
* @param repData 响应数据
|
*/
|
public static void ctUnitLogInfo(String method, String logmsg, Object reqData, Object repData) {
|
String log = getInfoLog(method, logmsg, reqData, repData);
|
ctUnitLogger.info(log);
|
}
|
|
/**
|
* 内部组织操作ERROR日志输出
|
* @param method 执行方法
|
* @param logmsg 日志信息
|
* @param reqData 请求数据
|
* @param e 报错信息
|
*/
|
public static void ctUnitLogError(String method, String logmsg, Object reqData, Exception e) {
|
String log = getErrorLog(method, logmsg, reqData, e);
|
ctUnitLogger.error(log, e);
|
}
|
|
/**
|
* 内部角色操作Info日志输出
|
* @param method 执行方法
|
* @param logmsg 日志信息
|
* @param reqData 请求数据
|
* @param repData 响应数据
|
*/
|
public static void ctRoleLogInfo(String method, String logmsg, Object reqData, Object repData) {
|
String log = getInfoLog(method, logmsg, reqData, repData);
|
ctRoleLogger.info(log);
|
}
|
|
/**
|
* 内部角色操作ERROR日志输出
|
* @param method 执行方法
|
* @param logmsg 日志信息
|
* @param reqData 请求数据
|
* @param e 报错信息
|
*/
|
public static void ctRoleLogError(String method, String logmsg, Object reqData, Exception e) {
|
String log = getErrorLog(method, logmsg, reqData, e);
|
ctRoleLogger.error(log, e);
|
}
|
|
/**
|
* 外部人员操作Info日志输出
|
* @param method 执行方法
|
* @param logmsg 日志信息
|
* @param reqData 请求数据
|
* @param repData 响应数据
|
*/
|
public static void paUserLogInfo(String method, String logmsg, Object reqData, Object repData) {
|
String log = getInfoLog(method, logmsg, reqData, repData);
|
paUserLogger.info(log);
|
}
|
|
/**
|
* 外部人员操作ERROR日志输出
|
* @param method 执行方法
|
* @param logmsg 日志信息
|
* @param reqData 请求数据
|
* @param e 报错信息
|
*/
|
public static void paUserLogError(String method, String logmsg, Object reqData, Exception e) {
|
String log = getErrorLog(method, logmsg, reqData, e);
|
paUserLogger.error(log, e);
|
}
|
|
|
}
|
/**
|
* -------------------_ooOoo_-------------------
|
* ------------------o8888888o------------------
|
* ------------------88" . "88------------------
|
* ------------------(| -_- |)------------------
|
* ------------------O\ = /O------------------
|
* ---------------____/`---'\____---------------
|
* -------------.' \\| |// `.-------------
|
* ------------/ \\||| : |||// \------------
|
* -----------/ _||||| -:- |||||- \-----------
|
* -----------| | \\\ - /// | |-----------
|
* -----------| \_| ''\---/'' | |-----------
|
* -----------\ .-\__ `-` ___/-. /-----------
|
* ---------___`. .' /--.--\ `. . __----------
|
* ------."" '< `.___\_<|>_/___.' >'"".-------
|
* -----| | : `- \`.;`\ _ /`;.`/ - ` : | |-----
|
* -----\ \ `-. \_ __\ /__ _/ .-` / /-----
|
* ======`-.____`-.___\_____/___.-`____.-'======
|
* -------------------`=---='
|
* ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
* ---------佛祖保佑---hugeinfo---永无BUG----------
|
*/
|