|
@@ -29,27 +29,6 @@ public final class LoggingContextHolder {
|
|
private LoggingContextHolder() {
|
|
private LoggingContextHolder() {
|
|
}
|
|
}
|
|
|
|
|
|
- /**
|
|
|
|
- * 获取日志信息
|
|
|
|
- *
|
|
|
|
- * @param t 异常对象实例
|
|
|
|
- * @return 消息内容
|
|
|
|
- */
|
|
|
|
- public static String message(Throwable t) {
|
|
|
|
- return message(SessionContextHolder.getRequest(), t);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- /**
|
|
|
|
- * 获取日志信息
|
|
|
|
- *
|
|
|
|
- * @param request 请求对象
|
|
|
|
- * @param t 异常对象实例
|
|
|
|
- * @return 消息内容
|
|
|
|
- */
|
|
|
|
- public static String message(ServletRequest request, Throwable t) {
|
|
|
|
- return message(request, ObjectUtils.ifNull(t, Throwable::getMessage));
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
/**
|
|
/**
|
|
* 获取日志信息
|
|
* 获取日志信息
|
|
*
|
|
*
|
|
@@ -105,16 +84,40 @@ public final class LoggingContextHolder {
|
|
return buffer.toString();
|
|
return buffer.toString();
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 获取日志信息
|
|
|
|
+ *
|
|
|
|
+ * @param request 请求对象
|
|
|
|
+ * @param t 异常对象实例
|
|
|
|
+ * @return 消息内容
|
|
|
|
+ */
|
|
|
|
+ public static String message(ServletRequest request, Throwable t) {
|
|
|
|
+ return message(request, true, t);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 获取日志信息
|
|
|
|
+ *
|
|
|
|
+ * @param request 请求对象
|
|
|
|
+ * @param embody 是否包含请求体
|
|
|
|
+ * @param t 异常对象实例
|
|
|
|
+ * @return 消息内容
|
|
|
|
+ */
|
|
|
|
+ public static String message(ServletRequest request, boolean embody, Throwable t) {
|
|
|
|
+ return message(request, embody, ObjectUtils.ifNull(t, Throwable::getMessage));
|
|
|
|
+ }
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* 获取日志信息
|
|
* 获取日志信息
|
|
*
|
|
*
|
|
* @param request 请求对象
|
|
* @param request 请求对象
|
|
|
|
+ * @param embody 是否包含请求体
|
|
* @param messages 消息内容数组
|
|
* @param messages 消息内容数组
|
|
* @return 消息内容
|
|
* @return 消息内容
|
|
*/
|
|
*/
|
|
- public static String message(ServletRequest request, @NonNull Object... messages) {
|
|
|
|
|
|
+ public static String message(ServletRequest request, boolean embody, @NonNull Object... messages) {
|
|
if (!(request instanceof HttpServletRequest)) {
|
|
if (!(request instanceof HttpServletRequest)) {
|
|
- return message((String) null, messages);
|
|
|
|
|
|
+ return message(null, messages);
|
|
}
|
|
}
|
|
StringBuilder endpoint = new StringBuilder();
|
|
StringBuilder endpoint = new StringBuilder();
|
|
endpoint.append(((HttpServletRequest) request).getMethod());
|
|
endpoint.append(((HttpServletRequest) request).getMethod());
|
|
@@ -124,7 +127,7 @@ public final class LoggingContextHolder {
|
|
if (StringUtils.notEmpty(query)) {
|
|
if (StringUtils.notEmpty(query)) {
|
|
endpoint.append("?").append(query);
|
|
endpoint.append("?").append(query);
|
|
}
|
|
}
|
|
- if (HttpUtils.isBodyType(request) && !HttpUtils.isStreamBody(request)) {
|
|
|
|
|
|
+ if (embody && HttpUtils.isBodyType(request) && !HttpUtils.isStreamBody(request)) {
|
|
String body = HttpUtils.getBody(request);
|
|
String body = HttpUtils.getBody(request);
|
|
if (StringUtils.notEmpty(body)) {
|
|
if (StringUtils.notEmpty(body)) {
|
|
endpoint.append(StringUtils.SPACE);
|
|
endpoint.append(StringUtils.SPACE);
|
|
@@ -134,6 +137,54 @@ public final class LoggingContextHolder {
|
|
return message(endpoint.toString(), messages);
|
|
return message(endpoint.toString(), messages);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 获取日志信息
|
|
|
|
+ *
|
|
|
|
+ * @param logger 日志处理器
|
|
|
|
+ * @param request 请求对象
|
|
|
|
+ * @param embody 是否包含请求体
|
|
|
|
+ * @param t 异常对象实例
|
|
|
|
+ * @return 消息内容
|
|
|
|
+ */
|
|
|
|
+ private static String message(Logger logger, ServletRequest request, boolean embody, Throwable t) {
|
|
|
|
+ try {
|
|
|
|
+ return message(request, embody, t);
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
+ logger.error("Logging context message build failed", e);
|
|
|
|
+ return ObjectUtils.ifNull(t, Throwable::getMessage);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 获取日志信息
|
|
|
|
+ *
|
|
|
|
+ * @param logger 日志处理器
|
|
|
|
+ * @param request 请求对象
|
|
|
|
+ * @param embody 是否包含请求体
|
|
|
|
+ * @param messages 消息内容数组
|
|
|
|
+ * @return 消息内容
|
|
|
|
+ */
|
|
|
|
+ private static String message(Logger logger, ServletRequest request, boolean embody, Object... messages) {
|
|
|
|
+ try {
|
|
|
|
+ return message(request, embody, messages);
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
+ logger.error("Logging context message build failed", e);
|
|
|
|
+ if (ObjectUtils.isEmpty(messages)) {
|
|
|
|
+ return null;
|
|
|
|
+ } else if (messages.length == 1) {
|
|
|
|
+ return StringUtils.toString(messages[0]);
|
|
|
|
+ }
|
|
|
|
+ StringBuilder buffer = new StringBuilder();
|
|
|
|
+ for (Object message : messages) {
|
|
|
|
+ if (buffer.length() > 0) {
|
|
|
|
+ buffer.append(";");
|
|
|
|
+ }
|
|
|
|
+ buffer.append(message);
|
|
|
|
+ }
|
|
|
|
+ return buffer.toString();
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* 获取日志处理器
|
|
* 获取日志处理器
|
|
*
|
|
*
|
|
@@ -145,6 +196,27 @@ public final class LoggingContextHolder {
|
|
return factory instanceof LoggerContext ? ((LoggerContext) factory).exists(name) : factory.getLogger(name);
|
|
return factory instanceof LoggerContext ? ((LoggerContext) factory).exists(name) : factory.getLogger(name);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 打印正常日志
|
|
|
|
+ *
|
|
|
|
+ * @param logger 日志处理器
|
|
|
|
+ * @param messages 消息数组
|
|
|
|
+ */
|
|
|
|
+ public static void info(@NonNull Logger logger, @NonNull Object... messages) {
|
|
|
|
+ info(logger, true, messages);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 打印正常日志
|
|
|
|
+ *
|
|
|
|
+ * @param logger 日志处理器
|
|
|
|
+ * @param embody 是否包含请求体
|
|
|
|
+ * @param messages 消息数组
|
|
|
|
+ */
|
|
|
|
+ public static void info(@NonNull Logger logger, boolean embody, @NonNull Object... messages) {
|
|
|
|
+ info(logger, SessionContextHolder.getRequest(), embody, messages);
|
|
|
|
+ }
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* 打印正常日志
|
|
* 打印正常日志
|
|
*
|
|
*
|
|
@@ -153,7 +225,20 @@ public final class LoggingContextHolder {
|
|
* @param messages 消息数组
|
|
* @param messages 消息数组
|
|
*/
|
|
*/
|
|
public static void info(@NonNull Logger logger, ServletRequest request, @NonNull Object... messages) {
|
|
public static void info(@NonNull Logger logger, ServletRequest request, @NonNull Object... messages) {
|
|
- logger.info(message(request, messages));
|
|
|
|
|
|
+ info(logger, request, true, messages);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 打印正常日志
|
|
|
|
+ *
|
|
|
|
+ * @param logger 日志处理器
|
|
|
|
+ * @param request 请求对象
|
|
|
|
+ * @param embody 是否包含请求体
|
|
|
|
+ * @param messages 消息数组
|
|
|
|
+ */
|
|
|
|
+ public static void info(@NonNull Logger logger, ServletRequest request, boolean embody,
|
|
|
|
+ @NonNull Object... messages) {
|
|
|
|
+ logger.info(message(logger, request, embody, messages));
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -163,7 +248,18 @@ public final class LoggingContextHolder {
|
|
* @param t 异常对象实例
|
|
* @param t 异常对象实例
|
|
*/
|
|
*/
|
|
public static void warn(@NonNull Logger logger, @NonNull Throwable t) {
|
|
public static void warn(@NonNull Logger logger, @NonNull Throwable t) {
|
|
- warn(logger, t, false);
|
|
|
|
|
|
+ warn(logger, true, t);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 打印告警日志
|
|
|
|
+ *
|
|
|
|
+ * @param logger 日志处理器
|
|
|
|
+ * @param embody 是否包含请求体
|
|
|
|
+ * @param t 异常对象实例
|
|
|
|
+ */
|
|
|
|
+ public static void warn(@NonNull Logger logger, boolean embody, @NonNull Throwable t) {
|
|
|
|
+ warn(logger, embody, t, false);
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -174,11 +270,19 @@ public final class LoggingContextHolder {
|
|
* @param tracing 是否打印堆栈
|
|
* @param tracing 是否打印堆栈
|
|
*/
|
|
*/
|
|
public static void warn(@NonNull Logger logger, @NonNull Throwable t, boolean tracing) {
|
|
public static void warn(@NonNull Logger logger, @NonNull Throwable t, boolean tracing) {
|
|
- if (tracing) {
|
|
|
|
- logger.warn(message(t), t);
|
|
|
|
- } else {
|
|
|
|
- logger.warn(message(t));
|
|
|
|
- }
|
|
|
|
|
|
+ warn(logger, true, t, tracing);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 打印告警日志
|
|
|
|
+ *
|
|
|
|
+ * @param logger 日志处理器
|
|
|
|
+ * @param embody 是否包含请求体
|
|
|
|
+ * @param t 异常对象实例
|
|
|
|
+ * @param tracing 是否打印堆栈
|
|
|
|
+ */
|
|
|
|
+ public static void warn(@NonNull Logger logger, boolean embody, @NonNull Throwable t, boolean tracing) {
|
|
|
|
+ warn(logger, SessionContextHolder.getRequest(), embody, t, tracing);
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -189,7 +293,19 @@ public final class LoggingContextHolder {
|
|
* @param t 异常对象实例
|
|
* @param t 异常对象实例
|
|
*/
|
|
*/
|
|
public static void warn(@NonNull Logger logger, ServletRequest request, @NonNull Throwable t) {
|
|
public static void warn(@NonNull Logger logger, ServletRequest request, @NonNull Throwable t) {
|
|
- warn(logger, request, t, false);
|
|
|
|
|
|
+ warn(logger, request, true, t);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 打印告警日志
|
|
|
|
+ *
|
|
|
|
+ * @param logger 日志处理器
|
|
|
|
+ * @param request 请求对象
|
|
|
|
+ * @param embody 是否包含请求体
|
|
|
|
+ * @param t 异常对象实例
|
|
|
|
+ */
|
|
|
|
+ public static void warn(@NonNull Logger logger, ServletRequest request, boolean embody, @NonNull Throwable t) {
|
|
|
|
+ warn(logger, request, embody, t, false);
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -201,10 +317,24 @@ public final class LoggingContextHolder {
|
|
* @param tracing 是否打印堆栈
|
|
* @param tracing 是否打印堆栈
|
|
*/
|
|
*/
|
|
public static void warn(@NonNull Logger logger, ServletRequest request, @NonNull Throwable t, boolean tracing) {
|
|
public static void warn(@NonNull Logger logger, ServletRequest request, @NonNull Throwable t, boolean tracing) {
|
|
|
|
+ warn(logger, request, true, t, tracing);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 打印告警日志
|
|
|
|
+ *
|
|
|
|
+ * @param logger 日志处理器
|
|
|
|
+ * @param request 请求对象
|
|
|
|
+ * @param embody 是否包含请求体
|
|
|
|
+ * @param t 异常对象实例
|
|
|
|
+ * @param tracing 是否打印堆栈
|
|
|
|
+ */
|
|
|
|
+ public static void warn(@NonNull Logger logger, ServletRequest request, boolean embody, @NonNull Throwable t,
|
|
|
|
+ boolean tracing) {
|
|
if (tracing) {
|
|
if (tracing) {
|
|
- logger.warn(message(request, t), t);
|
|
|
|
|
|
+ logger.warn(message(logger, request, embody, t), t);
|
|
} else {
|
|
} else {
|
|
- logger.warn(message(request, t));
|
|
|
|
|
|
+ logger.warn(message(logger, request, embody, t));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -216,7 +346,20 @@ public final class LoggingContextHolder {
|
|
* @param messages 消息数组
|
|
* @param messages 消息数组
|
|
*/
|
|
*/
|
|
public static void warn(@NonNull Logger logger, ServletRequest request, @NonNull Object... messages) {
|
|
public static void warn(@NonNull Logger logger, ServletRequest request, @NonNull Object... messages) {
|
|
- logger.warn(message(request, messages));
|
|
|
|
|
|
+ warn(logger, request, true, messages);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 打印告警日志
|
|
|
|
+ *
|
|
|
|
+ * @param logger 日志处理器
|
|
|
|
+ * @param request 请求对象
|
|
|
|
+ * @param embody 是否包含请求体
|
|
|
|
+ * @param messages 消息数组
|
|
|
|
+ */
|
|
|
|
+ public static void warn(@NonNull Logger logger, ServletRequest request, boolean embody,
|
|
|
|
+ @NonNull Object... messages) {
|
|
|
|
+ logger.warn(message(logger, request, embody, messages));
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -226,7 +369,18 @@ public final class LoggingContextHolder {
|
|
* @param t 异常对象实例
|
|
* @param t 异常对象实例
|
|
*/
|
|
*/
|
|
public static void error(@NonNull Logger logger, @NonNull Throwable t) {
|
|
public static void error(@NonNull Logger logger, @NonNull Throwable t) {
|
|
- logger.error(message(t), t);
|
|
|
|
|
|
+ error(logger, true, t);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 打印错误日志
|
|
|
|
+ *
|
|
|
|
+ * @param logger 日志处理器
|
|
|
|
+ * @param embody 是否包含请求体
|
|
|
|
+ * @param t 异常对象实例
|
|
|
|
+ */
|
|
|
|
+ public static void error(@NonNull Logger logger, boolean embody, @NonNull Throwable t) {
|
|
|
|
+ error(logger, SessionContextHolder.getRequest(), embody, t);
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -237,7 +391,19 @@ public final class LoggingContextHolder {
|
|
* @param t 异常对象实例
|
|
* @param t 异常对象实例
|
|
*/
|
|
*/
|
|
public static void error(@NonNull Logger logger, ServletRequest request, @NonNull Throwable t) {
|
|
public static void error(@NonNull Logger logger, ServletRequest request, @NonNull Throwable t) {
|
|
- logger.error(message(request, t), t);
|
|
|
|
|
|
+ error(logger, request, true, t);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 打印错误日志
|
|
|
|
+ *
|
|
|
|
+ * @param logger 日志处理器
|
|
|
|
+ * @param request 请求对象
|
|
|
|
+ * @param embody 是否包含请求体
|
|
|
|
+ * @param t 异常对象实例
|
|
|
|
+ */
|
|
|
|
+ public static void error(@NonNull Logger logger, ServletRequest request, boolean embody, @NonNull Throwable t) {
|
|
|
|
+ logger.error(message(logger, request, embody, t), t);
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -248,7 +414,20 @@ public final class LoggingContextHolder {
|
|
* @param messages 消息数组
|
|
* @param messages 消息数组
|
|
*/
|
|
*/
|
|
public static void error(@NonNull Logger logger, ServletRequest request, @NonNull Object... messages) {
|
|
public static void error(@NonNull Logger logger, ServletRequest request, @NonNull Object... messages) {
|
|
- logger.error(message(request, messages));
|
|
|
|
|
|
+ error(logger, request, true, messages);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 打印错误日志
|
|
|
|
+ *
|
|
|
|
+ * @param logger 日志处理器
|
|
|
|
+ * @param request 请求对象
|
|
|
|
+ * @param embody 是否包含请求体
|
|
|
|
+ * @param messages 消息数组
|
|
|
|
+ */
|
|
|
|
+ public static void error(@NonNull Logger logger, ServletRequest request, boolean embody,
|
|
|
|
+ @NonNull Object... messages) {
|
|
|
|
+ logger.error(message(logger, request, embody, messages));
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -258,9 +437,18 @@ public final class LoggingContextHolder {
|
|
* @param t 异常对象实例
|
|
* @param t 异常对象实例
|
|
*/
|
|
*/
|
|
public static void debug(@NonNull Logger logger, @NonNull Throwable t) {
|
|
public static void debug(@NonNull Logger logger, @NonNull Throwable t) {
|
|
- if (logger.isDebugEnabled()) {
|
|
|
|
- logger.debug(message(t), t);
|
|
|
|
- }
|
|
|
|
|
|
+ debug(logger, true, t);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 打印调试日志
|
|
|
|
+ *
|
|
|
|
+ * @param logger 日志处理器
|
|
|
|
+ * @param embody 是否包含请求体
|
|
|
|
+ * @param t 异常对象实例
|
|
|
|
+ */
|
|
|
|
+ public static void debug(@NonNull Logger logger, boolean embody, @NonNull Throwable t) {
|
|
|
|
+ debug(logger, SessionContextHolder.getRequest(), embody, t);
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -271,8 +459,20 @@ public final class LoggingContextHolder {
|
|
* @param t 异常对象实例
|
|
* @param t 异常对象实例
|
|
*/
|
|
*/
|
|
public static void debug(@NonNull Logger logger, ServletRequest request, @NonNull Throwable t) {
|
|
public static void debug(@NonNull Logger logger, ServletRequest request, @NonNull Throwable t) {
|
|
|
|
+ debug(logger, request, true, t);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 打印调试日志
|
|
|
|
+ *
|
|
|
|
+ * @param logger 日志处理器
|
|
|
|
+ * @param request 请求对象
|
|
|
|
+ * @param embody 是否包含请求体
|
|
|
|
+ * @param t 异常对象实例
|
|
|
|
+ */
|
|
|
|
+ public static void debug(@NonNull Logger logger, ServletRequest request, boolean embody, @NonNull Throwable t) {
|
|
if (logger.isDebugEnabled()) {
|
|
if (logger.isDebugEnabled()) {
|
|
- logger.debug(message(request, t), t);
|
|
|
|
|
|
+ logger.debug(message(logger, request, embody, t), t);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -284,8 +484,21 @@ public final class LoggingContextHolder {
|
|
* @param messages 消息数组
|
|
* @param messages 消息数组
|
|
*/
|
|
*/
|
|
public static void debug(@NonNull Logger logger, ServletRequest request, @NonNull Object... messages) {
|
|
public static void debug(@NonNull Logger logger, ServletRequest request, @NonNull Object... messages) {
|
|
|
|
+ debug(logger, request, true, messages);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 打印调试日志
|
|
|
|
+ *
|
|
|
|
+ * @param logger 日志处理器
|
|
|
|
+ * @param request 请求对象
|
|
|
|
+ * @param embody 是否包含请求体
|
|
|
|
+ * @param messages 消息数组
|
|
|
|
+ */
|
|
|
|
+ public static void debug(@NonNull Logger logger, ServletRequest request, boolean embody,
|
|
|
|
+ @NonNull Object... messages) {
|
|
if (logger.isDebugEnabled()) {
|
|
if (logger.isDebugEnabled()) {
|
|
- logger.debug(message(request, messages));
|
|
|
|
|
|
+ logger.debug(message(logger, request, embody, messages));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|