一、日志格式说明 %d - 时间,常用格式有 %d{DATE}, %d{ABSOLUTE}, %d{HH:mm:ss,SSS}, %d{ddMMyyyy HH:mm:ss,SSS} %m - 日志内容 %n - 换行 %p - 日志级别 %% - 输出%符号 %t - 当前线程名 %l - 同 %C%M%F%L %C - java类名 %M - java方法名 %F - java源文件名 %L - java源码行数 %X{ip} - 显示MDC中的ip值 %x - 显示NDC堆栈中的值
二、日志配置
log4j.rootCategory=INFO,test
log4j.appender.test=org.apache.log4j.RollingFileAppender
log4j.appender.test.File=${myweb.root}/WEB-INF/logs/web.log
log4j.appender.test.MaxFileSize=10MB
log4j.appender.test.MaxBackupIndex=0
log4j.appender.test.layout=org.apache.log4j.PatternLayout
log4j.appender.test.layout.ConversionPattern=%d - %p - %C%M%F%L - [%X{ip}]- [%x] - %m%n
1)如果用RollingFileAppender或者FileAppender时,可以通过${webapp.root}来定位到该项目发布目录下,这是spring把web目录的路径压入到了webapp.root的系统变量。然后log4j.properties 就可以这样定义logfile位置log4j.appender.logfile.File=${webapp.root}/WEB-INF/logs/test.log 如果有多个web应用,webapp.root变量重复,可以在context-param里定义webAppRootKey。
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>WEB-INF/log4j.properties</param-value>
</context-param>
<context-param>
<param-name>log4jRefreshInterval</param-name>
<param-value>60000</param-value>
</context-param>
<context-param>
<param-name>webAppRootKey</param-name>
<param-value>myweb.root</param-value>
</context-param>
log4jRefreshInterval:指定60s扫描1次配置,动态改变
2) log4j.rootCategory=INFO,test,表示将info及以上的日志输出到名字为test的appender。OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL,如果配置OFF则不打出任何信息。
3)log4j.appender.test=xxx,定义输出端类型,可以是:
org.apache.log4j.ConsoleAppender(控制台),org.apache.log4j.FileAppender(文件),org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),
org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),
org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)。
4)log4j.appender.test.layout=xxx,定义layout类型,可以是:
org.apache.log4j.HTMLLayout(以HTML表格形式布局),
org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)。
5) log4j.appender.stdout.layout.ConversionPattern=xxx,如果使用pattern布局,就要指定打印信息的具体格式。
6)log4j.appender.test.MaxFileSize=10MB,log4j.appender.test.MaxBackupIndex=0,文件MaxFileSize超过10m则滚动到新的日志文件,MaxBackupIndex指定可以产生的滚动文件的最大数,老的滚动文件删除。
三、MDC、NDC:log4j用于存储应用程序的上下文信息(context infomation),从而便于在log中使用这些上下文信息。NDC采用了一个类似栈的机制来push存储上下文信息,每一个线程都独立地储存上下文信息,可以用在filter中。
String ip = request.getRemoteAddr();
NDC.push(ip);
MDC内部使用了类似map的机制来存储信息。
String ip = request.getRemoteAddr();
MDC.put("ip", ip);
四、

- 大小: 13.9 KB

- 大小: 68.4 KB
分享到:
相关推荐
当我们面对特定项目需求,比如需要自定义日志文件名和日志输出格式时,Log4j同样提供了相应的解决方案。 首先,让我们深入理解如何自定义日志文件名。默认情况下,Log4j的日志文件名通常是固定的或者基于时间戳生成...
2. **配置全局 Log4j 属性文件**:在任意位置创建 `log4j.properties` 文件,并设置全局的日志级别、输出格式及存储路径等。通常会将该文件放置在 Tomcat 的 `conf` 目录下。 ```properties log4j.rootLogger=...
Log4j 的核心组件包括日志记录器(Logger)、日志输出目的地(Appender)和日志格式化器(Layout)。 二、配置 Log4j.properties 文件 在 SSM 整合项目中,配置 Log4j.properties 文件是必不可少的步骤。该文件...
**日志系统在软件开发中扮演着至关重要的角色,它能帮助开发者跟踪程序运行...同时,不断学习和探索log4j的高级特性,如异步日志、MDC(Mapped Diagnostic Context)等,可以进一步提升日志系统的实用性和可维护性。
本文将深入探讨如何利用Log4j进行日志输出格式化以及设置日志文件名格式化,以满足公司的标准化需求。 首先,我们来看日志输出格式化。Log4j的核心在于其灵活性,可以通过自定义布局模板来控制日志输出的格式。最...
日志appender是Log4j用来定义日志输出目的地的组件,比如控制台、文件、邮件等。 解决这个问题的第一步是在Maven项目中引入Log4j的依赖。在`pom.xml`文件中添加以下代码段: ```xml <groupId>log4j ...
Log4j是一款广泛使用的Java日志记录框架,它允许开发者按照功能模块或特定需求记录应用程序运行过程中的事件信息。在“log4j按功能保存日志”的场景中,我们通常会利用Log4j的配置灵活性,将不同功能的日志分别写入...
通过`log4j.properties`或`log4j.xml`配置文件,可以定制日志输出的级别、目的地和格式,从而满足不同项目的需求。在实际开发中,正确地使用和配置`log4j`能显著提升问题排查和系统监控的效率。
《深入理解Log4j日志打印》 在Java开发领域,日志打印是不可或缺的一环,它对于系统调试、性能监控、故障排查等都起着至关重要的作用。Log4j作为Java中最常用的日志框架之一,深受广大开发者喜爱。本文将深入探讨...
《深入理解Log4j日志框架》 在Java开发领域,日志系统是不可或缺的工具,它用于记录程序运行过程中的各种信息,帮助开发者在问题出现时定位和解决问题。Log4j作为Apache软件基金会的一个开源项目,是Java世界中最...
使用Log4j2的Layout组件定义日志输出格式。例如,我们可以使用PatternLayout,并自定义模式来指定哪些字段需要脱敏。例如,`%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n` 是一个基本的日志...
1. **配置文件**:Log4j的配置文件通常是`log4j.properties`或`log4j.xml`,它定义了日志的级别(如DEBUG、INFO、WARN、ERROR、FATAL)、输出目的地(控制台、文件、数据库等)以及布局格式。 2. **日志类**:在...
在“log4j日志.zip”压缩包中,包含的可能是Log4j的配置文件(如log4j.properties或log4j.xml)。这个文件定义了日志的级别、输出位置和格式。例如: ```properties # log4j.properties 示例 log4j.rootLogger=...
本文将详细讨论如何解决Log4j日志文件出现的乱码问题。 首先,我们要理解Log4j的工作原理。Log4j允许开发者自定义日志输出的方式,包括输出到控制台、文件、数据库等。它使用了`QuietWriter`类来写入日志,`...
tomcat6.0 配log4j日志的必须文件及配置过程 tomcat6-------lib | |--------tomcat-juli-adapters.jar | |--------log4j.jar | |--------log4j.properites | |----bin |--------tomcat-juli.jar 最后把log4...
**日志库Log4j详解** 日志在软件开发中起着至关重要的作用,它能够帮助开发者追踪程序运行状态,定位错误,优化性能,并且在生产环境中为运维人员提供宝贵的诊断信息。Log4j,由Apache软件基金会开发,是Java编程...
### Log4j日志管理详解 #### 一、Log4j概述 Log4j是一款流行的开源日志框架,由Apache软件基金会提供。它允许开发者在应用程序中加入日志功能,以便于跟踪程序运行过程中的各种状态信息。Log4j的核心设计理念在于...
压缩包中的"**log4j.properties**"文件是Log4j的配置文件,用于定义日志的输出级别、格式、目的地等。配置文件中的关键字和参数包括: 1. **rootLogger**: 定义了应用的根日志器,设置其级别(如DEBUG, INFO, WARN,...
下面我们将从配置文件类型、核心JAR包、文件渲染和Log调用四个方面来比较Log4j和Log4j2的区别。 配置文件类型 Log4j通过一个.properties文件作为主配置文件,而Log4j2则弃用了这种方式,采用的是.xml、.json或者....