LogBack sl4j 通过MDC实现日志记录区分用户Session[以Spring mvc为例] - 独木桥
来源:互联网 发布:java web工程反编译 编辑:程序博客网 时间:2024/05/17 22:42
LogBack sl4j 通过MDC实现日志记录区分用户Session[以Spring mvc为例] - 独木桥
import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.slf4j.MDC;import org.springframework.web.servlet.ModelAndView;import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;public class SessionInterceptor extends HandlerInterceptorAdapter { /** * 会话ID */ private final static String SESSION_KEY = "sessionId"; @Override public void afterCompletion(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, Exception arg3) throws Exception { // 删除 MDC. remove(SESSION_KEY); } @Override public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3) throws Exception { } @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { // 放SessionId String token = TokenUtil. java.util.UUID.randomUUID().toString(); MDC. put(SESSION_KEY, token); return true; }}
2.然后在logback相应的配置中加上 seesionId的配置就可以了
<?xml version="1.0" encoding="UTF-8"?><configuration> <property name="log.base" value="./log/logback" /> <appender name="stdout" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern> %X{sessionId} %date [%thread] %-5level %logger{80} - %msg%n </pattern> </encoder> </appender> <appender name="logfile" class="ch.qos.logback.core.rolling.RollingFileAppender"> <File> ${log.base}.log</File > <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <FileNamePattern> ${log.base}.%d{yyyy -MM-dd}.log.zip </FileNamePattern> </rollingPolicy> <encoder> <pattern> %X{sessionId} %date [%thread] %-5level %logger{80} - %msg%n </pattern> </encoder> </appender> <logger name="com.sample" level="TRACE" /> <root> <level value="INFO" /> <appender-ref ref="stdout" /> <appender-ref ref="logfile" /> </root></configuration>
3.日志打出的时候就会有可以标识区分不同客户端的请求了,用前面不同的token区分
e6668b68-ee47-4cde-b673-25ed9bb74f1e 2014-04-09 16:31:14,579 [qtp14850080-27] INFO o.c.a.f.i.AuthInterceptor - GET:/projectc3b84462-81c6-49f7-923b-d8ba48c53c07 2014-04-09 16:31:31,295 [qtp14850080-27] INFO o.c.a.f.i.AuthInterceptor - GET:/feedbacksb0e0f1fe-f30a-42b2-a103-e70a108561b7 2014-04-09 16:31:32,254 [qtp14850080-22] INFO o.c.a.f.i.AuthInterceptor - GET:/feedbacksa58ed619-c2e0-4b71-9c45-995a78c1b602 2014-04-09 16:31:42,788 [qtp14850080-29] INFO o.c.a.f.i.AuthInterceptor - GET:/project70de174a-5a05-41c6-a8b4-f17fcd33be5c 2014-04-09 16:31:43,537 [qtp14850080-22] INFO o.c.a.f.i.AuthInterceptor - GET:/projectf3efb2d4-f361-4c6b-bab6-16c8476c8dd0 2014-04-09 16:31:47,157 [qtp14850080-26] INFO o.c.a.f.i.AuthInterceptor - POST:/projectf3efb2d4-f361-4c6b-bab6-16c8476c8dd0 2014-04-09 16:31:47,161 [qtp14850080-26] INFO o.c.a.f.i.ProjectController - >> create() > GOT PARAMS 'Project [name=url, abstractContent=a, token=null]','(POST /project)@12571381 org.eclipse.jetty.server.Request@bfd2f5'
参考: http://logback.qos.ch/manual/mdc.html#autoMDC
0 0
- LogBack sl4j 通过MDC实现日志记录区分用户Session[以Spring mvc为例] - 独木桥
- 使用MDC为Logback slf4 日志记录线程ID,区分每次执行的会话日志
- 使用MDC为Logback slf4 日志记录线程ID,区分每次执行的会话日志
- 【Spring MVC拦截器+logback日志+自定义注解】实现用户鉴权登陆和访问日志记录
- 使用Log4j MDC来区分用户session打印log
- log4j,logback,sl4j常用日志格式详解
- 使用Spring MVC中的Interceptor和slf4j中的MDC实现日志归类标记
- Spring boot使用logback实现日志的记录
- 使用logback实现日志记录
- logback+slf4j实现日志记录
- Spring+logback实现日志输出
- Spring MVC中使用logback日志
- Spring mvc Mybatis使用 Logback开启日志
- Spring mvc 集成logback日志功能
- logback mdc
- Spring Boot 中的日志记录 logback
- Spring Boot 日志记录(Logback)
- Spring Boot 集成日志 logging sl4j
- Andorid SystemUI, StatusBar, Keyguard
- 约瑟夫环的java实现
- 常见Java面试题
- 一个女大学生的代码学习之路(一)
- uva 11076 - Add Again(组合数学)
- LogBack sl4j 通过MDC实现日志记录区分用户Session[以Spring mvc为例] - 独木桥
- 多名大臣曾因丑闻下台
- curl命令解析
- 一个女大学生的代码学习之路(一)
- Android中自定义View的MeasureSpec介绍及使用详解
- 最大和
- 台湾9名警员轻罚超载货车被依贪污罪起诉
- Alphabetical Substrings
- python 正则表达式介绍