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---------- */