`
234390216
  • 浏览: 10232917 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
博客专栏
A5ee55b9-a463-3d09-9c78-0c0cf33198cd
Oracle基础
浏览量:462622
Ad26f909-6440-35a9-b4e9-9aea825bd38e
springMVC介绍
浏览量:1775515
Ce363057-ae4d-3ee1-bb46-e7b51a722a4b
Mybatis简介
浏览量:1398352
Bdeb91ad-cf8a-3fe9-942a-3710073b4000
Spring整合JMS
浏览量:395022
5cbbde67-7cd5-313c-95c2-4185389601e7
Ehcache简介
浏览量:679981
Cc1c0708-ccc2-3d20-ba47-d40e04440682
Cas简介
浏览量:530892
51592fc3-854c-34f4-9eff-cb82d993ab3a
Spring Securi...
浏览量:1183946
23e1c30e-ef8c-3702-aa3c-e83277ffca91
Spring基础知识
浏览量:467909
4af1c81c-eb9d-365f-b759-07685a32156e
Spring Aop介绍
浏览量:151388
2f926891-9e7a-3ce2-a074-3acb2aaf2584
JAXB简介
浏览量:68150
社区版块
存档分类
最新评论

Log4j分级别记录日志文件

阅读更多

Log4j分级别记录日志文件

 

         在记录日志的时候通常我们都希望不同级别的日志能够分别记录在不同的日志文件中,然后有一个汇总的日志文件记录所有的日志信息,因为在大多数情况下我们可能只会关注那些Error级别的日志信息。利用log4j去记录这些信息是比较简单的,我们可以配置多个不同的appender,然后每个appender对应的threshold指定需要过滤的不同级别。Appenderthreshold属性默认是为空的,即表示不过滤掉任何级别的日志信息,也就是记录所有级别的日志信息。该属性值如果设为ERROR,则表示只记录ERROR级别以上的日志信息,对于ERROR以下级别的日志信息,如DEBUGINFO等将会忽略。所以如果我们需要按照日志信息级别的不同记录不同的日志文件,我们可以这样设置log4j.properties文件。

#指定默认情况下的日志输出级别为INFO,对应的appenderstdoutinfowarnerrorfatal

log4j.rootLogger=INFO,stdout,info,warn,error,fatal

 

log4j.appender.stdout=org.apache.log4j.ConsoleAppender

log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-ddHH\:mm\:ss,SSS}[%p]\=\=\=\=%t\:%c.%M(%L)\r\n\t%m%n\r\n

 

log4j.appender.info=org.apache.log4j.DailyRollingFileAppender

log4j.appender.info.layout=org.apache.log4j.PatternLayout

log4j.appender.info.layout.ConversionPattern=%d{yyyy-MM-ddHH\:mm\:ss,SSS}[%p]\=\=\=\=%t\:%c.%M(%L)\r\n\t%m%n\r\n

log4j.appender.info.threshold=INFO

log4j.appender.info.Encoding=UTF-8

log4j.appender.info.File=app.info.log

 

log4j.appender.warn=org.apache.log4j.DailyRollingFileAppender

log4j.appender.warn.layout=org.apache.log4j.PatternLayout

log4j.appender.warn.layout.ConversionPattern=%d{yyyy-MM-ddHH\:mm\:ss,SSS}[%p]\=\=\=\=%t\:%c.%M(%L)\r\n\t%m%n\r\n

log4j.appender.warn.threshold=WARN

log4j.appender.warn.Encoding=UTF-8

log4j.appender.warn.File=app.warn.log

 

log4j.appender.error=org.apache.log4j.DailyRollingFileAppender

log4j.appender.error.layout=org.apache.log4j.PatternLayout

log4j.appender.error.layout.ConversionPattern=%d{yyyy-MM-ddHH\:mm\:ss,SSS}[%p]\=\=\=\=%t\:%c.%M(%L)\r\n\t%m%n\r\n

log4j.appender.error.threshold=ERROR

log4j.appender.error.Encoding=UTF-8

log4j.appender.error.File=app.error.log

 

log4j.appender.fatal=org.apache.log4j.DailyRollingFileAppender

log4j.appender.fatal.layout=org.apache.log4j.PatternLayout

log4j.appender.fatal.layout.ConversionPattern=%d{yyyy-MM-ddHH\:mm\:ss,SSS}[%p]\=\=\=\=%t\:%c.%M(%L)\r\n\t%m%n\r\n

log4j.appender.fatal.threshold=FATAL

log4j.appender.fatal.Encoding=UTF-8

log4j.appender.fatal.File=app.fatal.log

 

   在上述配置中log4j.rootLogger是用来指定默认情况下的日志输出级别以及对应的appender的,其值是类似这样的格式:

   <日志输出级别>,<appender1>[,appender2[,append3…]]

 

         Appender中如果指定了对应的日志输出级别则会覆盖rootLogger的配置。像上面的配置对于info那个appender其日志输出级别就是info,哪怕rootLogger的默认日志输出级别改为ERROR,名称为infoappender仍然会记录INFO级别的日志信息。

 

         如果我们希望将com.app.package包下面的所有INFO级别以上的日志都记录在app.package.log文件中,那么我们就可以这样来配置。

 

log4j.logger.com.app.package=INFO,test

 

log4j.appender.test=org.apache.log4j.DailyRollingFileAppender  

log4j.appender.test.layout=org.apache.log4j.PatternLayout

log4j.appender.test.layout.ConversionPattern=%d{yyyy-MM-ddHH\:mm\:ss,SSS}[%p]\=\=\=\=%t\:%c.%M(%L)\r\n\t%m%n\r\n

log4j.appender.test.Encoding=UTF-8

log4j.appender.test.File=app.package.log

 

(注:本文是基于log4j1.2.17所写)

 

 

1
1
分享到:
评论
2 楼 234390216 2016-09-21  
muyufenghua 写道
楼主,这里写的有问题:"Appender中如果指定了对应的日志输出级别则会覆盖rootLogger的配置。像上面的配置对于info那个appender其日志输出级别就是info,哪怕rootLogger的默认日志输出级别改为ERROR,名称为info的appender仍然会记录INFO级别的日志信息。"

实际它是不会记录的.(基于log4j1.2.16)

谢谢你的回复。本文是基于log4j1.2.17所写,刚刚特意做了一次测试,没有问题。1.2.16版本也特意试验了下,确实是如你所说。
1 楼 muyufenghua 2016-09-14  
楼主,这里写的有问题:"Appender中如果指定了对应的日志输出级别则会覆盖rootLogger的配置。像上面的配置对于info那个appender其日志输出级别就是info,哪怕rootLogger的默认日志输出级别改为ERROR,名称为info的appender仍然会记录INFO级别的日志信息。"

实际它是不会记录的.(基于log4j1.2.16)

相关推荐

    log4j 写多个日志文件,按照日期每天都记

    本文将深入探讨如何利用`log4j`实现按照日期每天写入不同日志文件的功能,以及涉及到的相关知识点。 首先,我们要理解`log4j.properties`配置文件的作用。它是`log4j`的配置中心,通过这个文件我们可以定制日志输出...

    log4j按功能保存日志

    Log4j是一款广泛使用的Java日志记录框架,它允许开发者按照功能模块或特定需求记录应用程序运行过程中的事件信息。在“log4j按功能保存日志”的场景中,我们通常会利用Log4j的配置灵活性,将不同功能的日志分别写入...

    log4j2.xml记录日志到到数据库

    1. **配置文件**:如`log4j2.xml`,这是Log4j2的配置中心,定义了日志记录的策略、级别、输出目标等。 2. **日志记录器(Logger)**:负责收集和处理日志事件。 3. **日志级别(Level)**:如`TRACE`, `DEBUG`, `...

    log4j日志配置以及配置文件详解

    Log4j作为Java领域广泛应用的日志框架,提供了强大的日志记录功能和灵活的配置。本文将深入探讨log4j的配置以及配置文件的详解。** 首先,我们要理解什么是`log4j.properties`文件。这是log4j框架的配置文件,使用...

    动态设置log4j的日志级别

    本文将详细讲解如何动态设置Log4j的日志级别,以满足不同场景下的需求。 首先,我们要理解日志级别的概念。Log4j提供了多个日志级别,从低到高依次为:DEBUG、INFO、WARN、ERROR和FATAL。不同的日志级别用于记录...

    tomcat8更换log4j记录日志

    压缩包中的"**log4j.properties**"文件是Log4j的配置文件,用于定义日志的输出级别、格式、目的地等。配置文件中的关键字和参数包括: 1. **rootLogger**: 定义了应用的根日志器,设置其级别(如DEBUG, INFO, WARN,...

    log4j使用与java中log4j记录日志如何写入数据库

    1. **配置文件**:Log4j的配置文件通常是`log4j.properties`或`log4j.xml`,它定义了日志的级别(如DEBUG、INFO、WARN、ERROR、FATAL)、输出目的地(控制台、文件、数据库等)以及布局格式。 2. **日志类**:在...

    log4j-控制指定类,包的日志级别:log4j-demo.zip

    在Log4j中,控制日志级别主要通过配置文件`log4j.properties`或`log4j.xml`来实现。在提供的压缩包`log4j-demo`中,我们可以找到这样的配置文件。例如,如果我们想要控制特定类`com.example.MyClass`的日志级别为...

    SSM整合中的Log4j日志的配置详情

    Log4j 是一个功能强大且广泛使用的日志记录工具,特别是在 SSM(Spring、Spring MVC、Mybatis)整合项目中,合理地配置 Log4j 对项目的日志记录和输出至关重要。本文将详细介绍 SSM 整合中的 Log4j 配置详情,帮助...

    mybatis,log4j打印日志到后台和文件

    Log4j 是一个广泛使用的日志记录工具,能够帮助开发者跟踪应用程序运行过程中的信息、警告、错误等事件。本文将深入探讨如何在 MyBatis 中配置 Log4j,实现日志同时输出到后台控制台和文件。 1. **日志框架集成** ...

    log4j不同级别日志分不同文件记录

    ### Log4j 不同级别日志分不同文件记录详解 #### 概述 在软件开发过程中,日志记录是一项至关重要的工作。它不仅能够帮助开发者快速定位问题所在,还能够为系统的运维提供宝贵的信息。Apache Log4j 是一个非常流行...

    配置好log4j的eclipse简单工程,每天输出到一个日志文件中,该文件名为:“XXX_年月日时分.log”的形式

    在IT行业中,日志记录是系统调试、性能分析和故障排查的重要工具,而Log4j则是Java编程语言中广泛使用的日志框架之一。本工程基于Eclipse IDE,配置了一个简单的Log4j设置,实现了每天自动将日志输出到一个特定命名...

    log4j日志文件

    - `log4j.appender.filelog.File=your file dir`:指定日志文件的位置。 - `log4j.appender.filelog.MaxFileSize=your filesize`:设定单个文件的最大大小。 - `log4j.appender.mylog.MaxBackupIndex=num`:设置...

    Log4j2实现不同线程不同级别日志输出到不同的文件中

    在“Log4j2实现不同线程不同级别日志输出到不同的文件中”这个主题中,我们将深入探讨如何利用Log4j2实现这一高级日志管理需求。 1. **日志级别**: - 在Log4j2中,日志级别包括DEBUG、INFO、WARN、ERROR、FATAL...

    示范如何在android工程中使用log4j记录日志

    5. **定制日志级别和输出**:根据需要,可以通过修改log4j2.xml配置文件来调整日志级别,或者添加其他Appender,比如文件Appender,将日志记录到特定文件中。 6. **性能考虑**:在生产环境中,通常会将日志级别设置...

    log4j记录Debug日志

    10. **日志切割与归档**:Log4j可以配置自动滚动日志文件,比如按日期或大小切割,防止单个日志文件过大,同时支持归档旧的日志文件。 在使用Log4j记录Debug日志时,确保项目中引入了相应的Log4j库,并正确配置了`...

    AndroidStudio 使用log4j记录日志,按照大小定期滚动日志Demo

    本文将详细介绍如何在Android Studio中使用log4j库来记录日志,并实现按照日志文件大小自动滚动的功能,以及如何进行日志内容的格式化输出。 首先,log4j是一款广泛使用的日志记录框架,它提供了灵活的日志配置和...

    Log4j日志级别

    Log4j 的核心组件是日志记录器(Logger),它可以根据不同的级别记录日志信息。在 Log4j 中,日志记录器的级别(Level)可以分为七种:DEBUG、INFO、WARN、ERROR、FATAL、ALL 和 OFF。每种级别都有其特定的作用和...

    Log4j日志等级,具体说明了log4j中的日志记录等级,对于自己写日志有很大帮助。

    在生产环境中,通常会将日志级别设置得更高,避免记录过多的DEBUG信息,以减少日志文件的大小和提高性能。 #### 3. INFO Level (信息级别) INFO级别用于记录应用程序的一般操作信息,如启动、关闭或完成关键任务等...

Global site tag (gtag.js) - Google Analytics