在log中必须先了解log4j自带的两个类MDC和NDC
NDC和MDC是log4j用于存储应用程序的上下文信息(context infomation),从而便于在log中使用这些上下文信息。
NDC采用了一个类似栈的机制来push存储上下文信息,每一个线程都独立地储存上下文信息。比如说一个servlet就可以针对每一个request创建对应的NDC,储存客户端地址等等信息。相关的信息使用NDC.push(message);
在log的时候将信息输出。在相应的PatternLayout中使用”%x”来输出存储的上下文信息
例如:String remoteAddr = request.getRemoteAddr();
NDC.push(remoteAddr);
在log4j.properties文件中作如下的配置即可
log4j.appender.console.layout.ConversionPattern=%-d{yyyy/MM/dd HH:mm:ss,SSS} [%X] -[%c]-[%p] %m%n
MDC内部使用了类似map的机制来存储信息,相对应的方法,MDC.put(key,value);在配置PatternLayout的时候使用:%x{key}来输出对应的value
例如:String remoteAddr = request.getRemoteAddr();
MDC.put("ip", remoteAddr);
在log4j.properties文件中作如下的配置即可
log4j.appender.console.layout.ConversionPattern=%-d{yyyy/MM/dd HH:mm:ss,SSS} [%X{ip}] -[%c]-[%p] %m%n
总:如果在项目中有过滤器或者模板Action,你可以把获取公共的属性方法直接定义在里面,然后在配置文件中配置获取显示
转载地址:http://www.blogjava.net/xcp/archive/2012/11/06/390894.html
相关推荐
Log4j允许我们在运行时动态调整日志级别,避免不必要的日志输出,提高系统性能。 **6. 扩展与集成** 除了基本的日志功能,Log4j还支持与其他日志框架(如Logback)的互操作,以及与Spring等框架的集成,提供更强大...
Log4j是Apache提供的一款广泛使用的日志框架,它提供了丰富的功能和灵活的配置,使得我们可以根据需要动态地改变日志的输出路径。本文将深入探讨如何在Log4j中实现日志输出路径的动态配置。 首先,我们要理解Log4j...
然后使用Logger.getLogger()方法获取日志记录器,而Log4j2需要import org.apache.logging.log4j.Level、org.apache.logging.log4j.LogManager和org.apache.logging.log4j.Logger,使用LogManager.getLogger()方法...
Log4j是一个广泛使用的Java日志记录框架,它允许开发者在应用程序中轻松地记录各种级别的日志信息,如DEBUG、INFO、WARN、ERROR等。在2021年底,一个重大的安全漏洞(CVE-2021-44228)被发现在Log4j2的早期版本中,...
针对Log4j 2 远程代码执行漏洞,需要用到的升级资源包,适用于maven资源库,包括log4j,log4j-core,log4j-api,log4j-1.2-api,log4j-jpa等全套2.15.0 maven资源库jar包。如果是maven本地仓库使用,需要将zip包解压...
Log4j 在 SSM 整合中的配置详解 Log4j 是一个功能强大且广泛使用的日志记录工具,特别是在 SSM(Spring、Spring MVC、Mybatis)整合项目中,合理地配置 Log4j 对项目的日志记录和输出至关重要。本文将详细介绍 SSM...
apache-log4j-1.2.15.jar, apache-log4j-extras-1.0.jar, apache-log4j-extras-1.1.jar, apache-log4j.jar, log4j-1.2-api-2.0.2-javadoc.jar, log4j-1.2-api-2.0.2-sources.jar, log4j-1.2-api-2.0.2.jar, log4j-...
### Log4j2简介 Log4j2是Apache软件基金会推出的日志框架,它是Log4j 1.x的重构版本,旨在提供更为高效且灵活的日志解决方案。与Log4j 1.x相比,Log4j2在设计上进行了重大改进,并解决了Logback等其他日志框架中...
分别有disruptor-3.3.4.jar(Log4j2异步日志的底层实现)、log4j-api-2.19.0.jar(log4j门面)、log4j-core-2.19.0.jar(log4j实现)、log4j-slf4j-impl-2.19.0.jar(SLF4J与Log4j绑定)、slf4j-api-1.7.30.jar(SLF...
在上述代码中,`logger`对象是通过`LoggerFactory.getLogger()`获取的,它会自动根据类名查找合适的日志实现,即Log4j。 4. **运行测试**:在`test-log4j`目录中的测试代码,应该是用来验证上述配置和日志记录功能...
Log4j和Log4j2是两种广泛使用的Java日志框架,它们提供了灵活的日志配置和高性能的日志处理能力。本文将详细介绍如何在SpringBoot项目中配置Log4j和Log4j2。 ### SpringBoot与Log4j Log4j是Apache的一个开源项目,...
本篇文章将深入探讨Log4j的参数配置方法,以及ConversionPattern参数的格式含义。 首先,Log4j的核心在于其配置文件,一般命名为`log4j.properties`或`log4j.xml`。配置文件定义了日志记录的级别、输出目的地和格式...
这表明我们可以从这个文件中获取Log4j 1.2 API的详细使用指南和参考文档。 **Log4j API知识点** 1. **日志级别**:Log4j API支持多个日志级别,如DEBUG、INFO、WARN、ERROR和FATAL。这些级别允许开发者根据需要...
Apache log4j2零日漏洞,根据 log4j-2.15.0-rc2 版本编译生成log4j-api-2.15.0.jar 1.解压你的jar jar xvf XXX.jar 2. 删除旧版本jar cd ./BOOT-INF/lib rm -rf log4j-api-*.jar 3. 上传新版本log4j-api-2.15.0....
Log4Shell漏洞的核心在于log4j2的Lookup功能,该功能允许在日志消息中动态解析变量。攻击者可以利用此功能,将恶意的JNDI链接注入到日志记录中,当log4j2尝试解析这些链接时,就会执行攻击者控制的代码。由于很多...
Log4j、Log4j2和Fastjson是Java开发中常用的三个库,它们在软件开发中扮演着重要的角色。Log4j是Apache的一个开源项目,主要用于日志记录,提供了灵活的日志配置,允许开发者根据需求调整日志输出的级别和格式。Log4...
此次提及的`log4j-api-2.12.4.jar`和`log4j-core-2.12.4.jar`是Log4j 2框架的两个关键组件,版本号为2.12.4,这个版本主要修复了之前版本中可能存在的安全漏洞。 **log4j-api-2.12.4.jar** 是Log4j 2框架的API模块...
apache下载太慢,特搬到国内下载。修复log4j漏洞log4j2下载最新log4j2.16.0下载
这个库实现了log4j-api中定义的接口,提供了具体的功能,比如各种Appender(控制台输出、文件写入、网络传输等)、Layout(日志格式化)、Filter(日志过滤)和Lookup(动态配置变量解析)。例如,`org.apache....
使用这些组件时,开发者需要在项目中配置log4j的配置文件(通常是`log4j.properties`或`log4j.xml`),定义日志输出的级别、格式、目的地等。SLF4J API的使用则是在代码中引入相应的依赖,并通过SLF4J的...