Log4j MDC使用案例
import java.io.IOException; import java.util.Map; import java.util.UUID; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.lang.StringUtils; import org.apache.log4j.MDC; import org.springframework.web.filter.OncePerRequestFilter; /** * 存放在MDC中的数据,log4j可以直接引用并作为日志信息打印出来. * * <pre> * 示例使用: * log4j.appender.stdout.layout.conversionPattern=%d [%X{loginUserId}/%X{req.remoteAddr}/%X{req.id} - %X{req.requestURI}?%X{req.queryString}] %-5p %c{2} - %m%n * </pre> * @author badqiu */ public class LoggerMDCFilter extends OncePerRequestFilter implements Filter{ protected void doFilterInternal(HttpServletRequest request,HttpServletResponse response, FilterChain chain)throws ServletException,IOException { try { //示例为一个固定的登陆用户,请直接修改代码 MDC.put("loginUserId", "demo-loginUsername"); MDC.put("req.requestURI", StringUtils.defaultString(request.getRequestURI())); MDC.put("req.queryString", StringUtils.defaultString(request.getQueryString())); MDC.put("req.requestURIWithQueryString", request.getRequestURI() + (request.getQueryString() == null ? "" : "?"+request.getQueryString())); MDC.put("req.remoteAddr", StringUtils.defaultString(request.getRemoteAddr())); //为每一个请求创建一个ID,方便查找日志时可以根据ID查找出一个http请求所有相关日志 MDC.put("req.id", StringUtils.remove(UUID.randomUUID().toString(),"-")); chain.doFilter(request, response); }finally { clearMDC(); } } private void clearMDC() { Map map = MDC.getContext(); if(map != null) { map.clear(); } } }
log4j.properties
log4j.appender.logfile.layout.ConversionPattern=%X{userId} %d{yyyy-MM-dd HH:mm:ss} %p %l %m
相关推荐
LOG4J2的生产环境配置配置案例: 4.日志滚动,避免单个日志过大,可以按小时进行日志分割. <RollingFile name="RollingFile" fileName="logs/app.log" filePattern="logs/app-%d{MM-dd-yyyy}.log.gz" ignoreExceptions=...
2. log4j2 的配置详解,JDBC 配置,CloseableThreadContext 的使用(自定义输出日志文件 例如 logback MDC) 3.logback 的XML配置与使用,MDC的使用,SiftingAppender,DBAppender(c3p0,druid) 详细查看代码:README.md ...
log4j是eclipse 当中常用的记录日志的文件,使用方法详见我的博客。在初涉边框下面有一节描述日志使用的
LOG4J2的MDC应用MDC的概念:Manufacturing Data Collection 生产数据实时采集和分析。有时实际开发过程没有发现的BUG在生产环境才出现,需要到生产环境去分析实时日志来进行BUG跟踪;LOG4J2提供了MDC功能可以将特定...
MDC04、MDC02中文手册
1.如果运行程序出现错误:“Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory”,这是因为项目缺少slf4j-api.jar和slf4j-log4j12.jar这两个jar包导致的错误。 2.如果运行程序...
NULL 博文链接:https://bijian1013.iteye.com/blog/2431392
某些非Log4j特定类型,包括Mdc和MdcObtainableEntry , MdcObtainableEntry可能会移动到单独的模块中。 源代码必须根据Ceylon的最新开发版本进行编译,因此预编译的模块要等到Ceylon的下一个发行版之后才能使用。 ...
log4j-2-弹性 我创建了这个项目,以共享和增强附加程序,该附加程序将消息直接记录到集群中。 在某些特定情况下,这种将日志聚合到Elasticsearch中的方法可以很好地替代Elastic Beats。特征该产品包括一些标准和某些...
- Support for a log formatter (similar to Layouts in Log4J) - Support for console log - Support for smtp formatter - Support for XML logs - Support for syslog - Support for changing format and level ...
引用步骤: 1.基于SpringBoot自动...2.基于logback、log4j的MDC机制 3.日志配置中添加traceId引用,如下: [%date{yyyy-MM-dd HH:mm:ss.SSS}] [%X{traceId}] [%thread] %-5level %logger{80} %line - %msg%n</Pattern>
org.slf4j.MDC.class org.slf4j.Marker.class org.slf4j.MarkerFactory.class org.slf4j.helpers.BasicMDCAdapter.class org.slf4j.helpers.BasicMarker.class org.slf4j.helpers.BasicMarkerFactory.class org.slf4...
MOTO MDC1200信令
详细介绍华为MDC平台解决方案,包括MDC硬件平台、MDC软件平台、MDC工具链、车规和质量,是了解和学习MDC平台的优质资料。
功能: syslog风格的配置文件,易学易用 ...MDC,一个log4j风格的键-值对的表,可以扩展用户自定义的字段 自诊断,可以在运行时输出zlog自己的日志和配置状态 不依赖其他库,只要是个POSIX系统就成
华为MDC示例sample代码
MDC4杂凑算法,用c语言实现,大家可以下载看看,交流交流
mdc加密算法
mdc1200编解码库 mdc1200编解码库 mdc1200编解码库 mdc1200编解码库 mdc1200编解码库
MDC1200编码和解码软件算法 mdc_encode.c mdc_decode.c mdc_common.c mdc_test.c