日志输出信息优化
This commit is contained in:
@@ -34,33 +34,32 @@ public class LogInterceptor extends BaseService implements HandlerInterceptor {
|
|||||||
private static final String TRACE_ID = "TRACE_ID";
|
private static final String TRACE_ID = "TRACE_ID";
|
||||||
private static final ThreadLocal<Long> startTimeThreadLocal =
|
private static final ThreadLocal<Long> startTimeThreadLocal =
|
||||||
new NamedThreadLocal<Long>("LogInterceptor StartTime");
|
new NamedThreadLocal<Long>("LogInterceptor StartTime");
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean preHandle(HttpServletRequest request, HttpServletResponse response,
|
public boolean preHandle(HttpServletRequest request, HttpServletResponse response,
|
||||||
Object handler) throws Exception {
|
Object handler) throws Exception {
|
||||||
if (StringUtils.isBlank(MDC.get(TRACE_ID))) {
|
if (StringUtils.isBlank(MDC.get(TRACE_ID))) {
|
||||||
MDC.put(TRACE_ID, IdGen.nextId());
|
MDC.put(TRACE_ID, IdGen.nextId());
|
||||||
}
|
}
|
||||||
long beginTime = System.currentTimeMillis();// 1、开始时间
|
long beginTime = System.currentTimeMillis();// 1、开始时间
|
||||||
startTimeThreadLocal.set(beginTime); // 线程绑定变量(该数据只有当前请求的线程可见)
|
startTimeThreadLocal.set(beginTime); // 线程绑定变量(该数据只有当前请求的线程可见)
|
||||||
if (logger.isDebugEnabled()){
|
if (logger.isDebugEnabled()){
|
||||||
logger.debug("开始计时: {} URI: {} IP: {}", new SimpleDateFormat("hh:mm:ss.SSS")
|
logger.debug("请求开始, URI: {}, IP: {}", request.getRequestURI(), IpUtils.getRemoteAddr(request));
|
||||||
.format(beginTime), request.getRequestURI(), IpUtils.getRemoteAddr(request));
|
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
|
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
|
||||||
ModelAndView modelAndView) throws Exception {
|
ModelAndView modelAndView) throws Exception {
|
||||||
if (modelAndView != null){
|
if (modelAndView != null && logger.isDebugEnabled()){
|
||||||
logger.info("ViewName: " + modelAndView.getViewName() + " <<<<<<<<< " + request.getRequestURI() + " >>>>>>>>> " + handler);
|
logger.debug("ViewName: " + modelAndView.getViewName() + " <<< " + request.getRequestURI() + " >>> " + handler);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void afterCompletion(HttpServletRequest request, HttpServletResponse response,
|
public void afterCompletion(HttpServletRequest request, HttpServletResponse response,
|
||||||
Object handler, Exception ex) throws Exception {
|
Object handler, Exception ex) throws Exception {
|
||||||
long endTime = System.currentTimeMillis(); // 2、结束时间
|
long endTime = System.currentTimeMillis(); // 2、结束时间
|
||||||
long startTime = 0; // 得到线程绑定的局部变量(开始时间)
|
long startTime = 0; // 得到线程绑定的局部变量(开始时间)
|
||||||
if (startTimeThreadLocal != null){
|
if (startTimeThreadLocal != null){
|
||||||
@@ -74,16 +73,17 @@ public class LogInterceptor extends BaseService implements HandlerInterceptor {
|
|||||||
startTime = endTime + 1000; // 得到 -1000 方便统计
|
startTime = endTime + 1000; // 得到 -1000 方便统计
|
||||||
}
|
}
|
||||||
long executeTime = endTime - startTime; // 3、获取执行时间
|
long executeTime = endTime - startTime; // 3、获取执行时间
|
||||||
|
|
||||||
// 保存日志
|
// 保存日志
|
||||||
LogUtils.saveLog(UserUtils.getUser(), request, handler, ex, null, null, executeTime);
|
LogUtils.saveLog(UserUtils.getUser(), request, handler, ex, null, null, executeTime);
|
||||||
|
|
||||||
// 打印JVM信息。
|
// 打印JVM信息。
|
||||||
if (logger.isDebugEnabled()){
|
if (logger.isInfoEnabled()){
|
||||||
Runtime runtime = Runtime.getRuntime();
|
Runtime runtime = Runtime.getRuntime();
|
||||||
logger.debug("计时结束: {} 用时: {} URI: {} 总内存: {} 已用内存: {}",
|
long totalMemory = runtime.totalMemory();
|
||||||
DateUtils.formatDate(endTime, "hh:mm:ss.SSS"), TimeUtils.formatDateAgo(executeTime), request.getRequestURI(),
|
logger.info("请求完成, URI: {}, 用时: {}, 总内存: {}, 剩余: {}", request.getRequestURI(),
|
||||||
ByteUtils.formatByteSize(runtime.totalMemory()), ByteUtils.formatByteSize(runtime.totalMemory()-runtime.freeMemory()));
|
TimeUtils.formatDateAgo(executeTime), ByteUtils.formatByteSize(totalMemory),
|
||||||
|
ByteUtils.formatByteSize(totalMemory-(totalMemory-runtime.freeMemory())));
|
||||||
}
|
}
|
||||||
MDC.remove(TRACE_ID);
|
MDC.remove(TRACE_ID);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user