`
zqding
  • 浏览: 96365 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

Log4j使用总结

阅读更多

Log4j使用总结:

#OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者您定义的级别。

Log4j建议只使用四个级别,优先级从高到低分别是ERROR、WARN、INFO、DEBUG

#这里定义能显示到的最低级别,若定义到INFO级别,则看不到DEBUG级别的信息了~!
log4j.rootLogger=DEBUG

#将DAO层log记录到DAOLog,allLog中
log4j.logger.DAO=DEBUG,A2,A4
#将逻辑层log记录到BusinessLog,allLog中
log4j.logger.Businesslog=DEBUG,A3,A4

#A1--打印到屏幕上
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%-5p  [%t]  %37c  %3x  -  %m%n

#A2--打印到文件DAOLog中--专门为DAO层服务
log4j.appender.A2=org.apache.log4j.DailyRollingFileAppender
log4j.appender.A2.file=DAOLog
log4j.appender.A2.DatePattern='.'yyyy-MM-dd
log4j.appender.A2.layout=org.apache.log4j.PatternLayout
log4j.appender.A2.layout.ConversionPattern=[%-5p]  %d{yyyy-MM-dd  HH:mm:ss,SSS}  method:%l%n%m%n

#A3--打印到文件BusinessLog中--专门记录逻辑处理层服务log信息
log4j.appender.A3=org.apache.log4j.DailyRollingFileAppender
log4j.appender.A3.file=BusinessLog
log4j.appender.A3.DatePattern='.'yyyy-MM-dd
log4j.appender.A3.layout=org.apache.log4j.PatternLayout
log4j.appender.A3.layout.ConversionPattern=[%-5p]  %d{yyyy-MM-dd  HH:mm:ss,SSS}  method:%l%n%m%n

#A4--打印到文件alllog中--记录所有log信息
log4j.appender.A4=org.apache.log4j.DailyRollingFileAppender
log4j.appender.A4.file=alllog
log4j.appender.A4.DatePattern='.'yyyy-MM-dd
log4j.appender.A4.layout=org.apache.log4j.PatternLayout
log4j.appender.A4.layout.ConversionPattern=[%-5p]  %d{yyyy-MM-dd  HH:mm:ss,SSS}  method:%l%n%m%n

#Appender的使用
log4j.appender.A2=org.apache.log4j.DailyRollingFileAppender
log4j.appender.A2.file=demo
log4j.appender.A2.DatePattern='.'yyyy-MM-dd
log4j.appender.A2.layout=org.apache.log4j.PatternLayout
log4j.appender.A2.layout.ConversionPattern=%m%n

#Layout的配置
log4j.appender.A2.layout=org.apache.log4j.PatternLayout
log4j.appender.A2.layout.ConversionPattern=[%-5p]  %d{yyyy-MM-dd  HH:mm:ss,SSS}  method:%l%n%m%n

ConversionPattern参数的格式含义
格式名  含义
%c  输出日志信息所属的类的全名
%d  输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy-MM-dd  HH:mm:ss  },输出类似:2002-10-18-  22:10:28
%f  输出日志信息所属的类的类名
%l  输出日志事件的发生位置,即输出日志信息的语句处于它所在的类的第几行
%m  输出代码中指定的信息,如log(message)中的message
%n  输出一个回车换行符,Windows平台为“rn”,Unix平台为“n”
%p  输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL。如果是调用debug()输出的,则为DEBUG,依此类推
%r  输出自应用启动到输出该日志信息所耗费的毫秒数
%t  输出产生该日志事件的线程名

#1  定义了两个输出端
log4j.rootLogger  =  INFO,  A1,  A2,A3

#2  定义A1输出到控制器
log4j.appender.A1  =  org.apache.log4j.ConsoleAppender
#3  定义A1的布局模式为PatternLayout
log4j.appender.A1.layout  =  org.apache.log4j.PatternLayout
#4  定义A1的输出格式
log4j.appender.A1.layout.ConversionPattern  =  %-4r  [%t]  %-5p  %c  -  %m%n

#5  定义A2输出到文件
log4j.appender.A2  =  org.apache.log4j.RollingFileAppender
#6  定义A2要输出到哪一个文件
log4j.appender.A2.File  =  F:nepalonclassesexample3.log
#7  定义A2的输出文件的最大长度
log4j.appender.A2.MaxFileSize  =  1KB
#8  定义A2的备份文件数
log4j.appender.A2.MaxBackupIndex  =  3
#9  定义A2的布局模式为PatternLayout
log4j.appender.A2.layout  =  org.apache.log4j.PatternLayout
#10  定义A2的输出格式
log4j.appender.A2.layout.ConversionPattern  =  %d{yyyy-MM-dd  hh:mm:ss}:%p  %t  %c  -  %m%n

配置log4j的总结
这个教程到这里,关于配置log4j的配置文件的基本原理已经讲完了,而且通过例3我们已经可以完成基本的日志工作了。现在,我们就做一个总结。配置一个配置文件的基本步骤如下:
1)  定义一个Logger。在定义Logger时指定该Logger的级别级其输出目的地。定义Logger的格式为
log4j.rootLogger  =  [  level  ],  appendName1,  appendName2,  …appendNameN。
2)  定义appender的输出目的地。定义一个appender的输出目的地的格式为
log4j.appender.appenderName  =  fully.qualified.name.of.appender.class。
log4j提供的输出端有ConsoleAppender、FileAppender  、DailyRollingFileAppender、RollingFileAppender和WriterAppender。
3)  定义appender的除布局模式外的其它相关参数,如例3中第6、7、8定义了A2的相关参数。定义格式为
log4j.appender.appenderName.optionName1  =  value1
……
log4j.appender.appenderName.optionNameN  =  valueN
如果除了布局模式外不需要定义别的参数,可跳过这一步(如例3中的A1)。
4)  定义appender的布局模式。定义一个appender的布局模式的格式为
log4j.appender.appenderName.layout  =  fully.qualified.name.of.layout.class。
布局模式其实也是步骤3)中的一个部分,只是布局模式参数是每一个appender必须定义的参数。Log4j提供的布局模式有HTMLLayout、PatternLayout和SimpleLayout。
5)  定义与所选的布局模式相关的设置信息,定义格式为
og4j.appender.appenderName.layout.optionName1  =  value1
……
log4j.appender.appenderName.layout.optionNameN  =  valueN


在类中使用时,导入以下包:
import  org.apache.log4j.BasicConfigurator;
import  org.apache.log4j.Logger;
import  org.apache.log4j.PropertyConfigurator;

在类中创建log对象
private  Logger  log  =  Logger.getLogger(this.getClass());
 

----------------------------////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\----------------------------

配置Log4j(很详细)
 来自: http://www.blogjava.net/zJun/archive/2006/06/28/55511.html

Log4J的配置文件(Configuration File)就是用来设置记录器的级别、存放器和布局的,它可接key=value格式的设置或xml格式的设置信息。通过配置,可以创建出Log4J的运行环境。

1. 配置文件
Log4J配置文件的基本格式如下:

 #配置根Logger
 log4j.rootLogger  =   [ level ]   ,  appenderName1 ,  appenderName2 ,  …
 
 #配置日志信息输出目的地Appender
 log4j.appender.appenderName  =  fully.qualified.name.of.appender.class
   log4j.appender.appenderName.option1  =  value1
   …
   log4j.appender.appenderName.optionN  =  valueN
 
 #配置日志信息的格式(布局)
 log4j.appender.appenderName.layout  =  fully.qualified.name.of.layout.class
   log4j.appender.appenderName.layout.option1  =  value1
   …
   log4j.appender.appenderName.layout.optionN  =  valueN 

其中 [level] 是日志输出级别,共有5级:


 FATAL        0 
 ERROR      3 
 WARN       4 
 INFO          6 
 DEBUG      7
 
Appender 为日志输出目的地,Log4j提供的appender有以下几种:
 org.apache.log4j.ConsoleAppender(控制台),
 org.apache.log4j.FileAppender(文件),
 org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),
 org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),
 org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
Layout :日志输出格式,Log4j提供的layout有以下几种:


 org.apache.log4j.HTMLLayout(以HTML表格形式布局),
 org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
 org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
 org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)

打印参数: Log4J采用类似C语言中的printf函数的打印格式格式化日志信息,如下:


    %m    输出代码中指定的消息
   %p    输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL
   %r    输出自应用启动到输出该log信息耗费的毫秒数
   %c    输出所属的类目,通常就是所在类的全名
   %t    输出产生该日志事件的线程名
   %n    输出一个回车换行符,Windows平台为“\r\n”,Unix平台为“\n”
   %d    输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss , SSS},输出类似:2002年10月18日  22 : 10 : 28 , 921 
   %l    输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java: 10 ) 

2. 在代码中初始化Logger:
1)在程序中调用BasicConfigurator.configure() 方法:给根记录器增加一个ConsoleAppender,输出格式通过PatternLayout设为"%-4r [%t] %-5p %c %x - %m%n" ,还有根记录器的默认级别是Level.DEBUG .
2)配置放在文件里,通过命令行参数传递文件名字,通过PropertyConfigurator.configure(args[x]) 解析并配置;
3)配置放在文件里,通过环境变量传递文件名等信息,利用log4j默认的初始化过程解析并配置;
4)配置放在文件里,通过应用服务器配置传递文件名等信息,利用一个特殊的servlet来完成配置。

3. 为不同的 Appender 设置日志输出级别:
当调试系统时,我们往往注意的只是异常级别的日志输出,但是通常所有级别的输出都是放在一个文件里的,如果日志输出的级别是BUG!?那就慢慢去找吧。
这时我们也许会想要是能把异常信息单独输出到一个文件里该多好啊。当然可以,Log4j已经提供了这样的功能,我们只需要在配置中修改Appender 的Threshold 就能实现,比如下面的例子:

[配置文件]


 ### set log levels ###
 log4j.rootLogger = debug ,  stdout ,  D ,  E
 
 ### 输出到控制台 ###
 log4j.appender.stdout = org.apache.log4j.ConsoleAppender
 log4j.appender.stdout.Target = System.out
 log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
 log4j.appender.stdout.layout.ConversionPattern =  %d{ABSOLUTE} %5p %c{ 1 }:%L - %m%n
 
 ### 输出到日志文件 ###
 log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
 log4j.appender.D.File = logs/log.log
 log4j.appender.D.Append = true
 log4j.appender.D.Threshold = DEBUG ## 输出DEBUG级别以上的日志
 log4j.appender.D.layout = org.apache.log4j.PatternLayout
 log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n
 
 ### 保存异常信息到单独文件 ###
 log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
 log4j.appender.D.File = logs/error.log ## 异常日志文件名
 log4j.appender.D.Append = true
 log4j.appender.D.Threshold = ERROR ## 只输出ERROR级别以上的日志!!!
 log4j.appender.D.layout = org.apache.log4j.PatternLayout
 log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n
[代码中使用]


  public   class  TestLog4j   {
       public   static   void  main(String[] args)   {
         PropertyConfigurator.configure( " D:/Code/conf/log4j.properties " );
         Logger logger  =  Logger.getLogger(TestLog4j. class );
         logger.debug( " debug " );
         logger.error( " error " );
     }
 }

运行一下,看看异常信息是不是保存在了一个单独的文件error.log中

 

分享到:
评论

相关推荐

    log4j使用总结

    Log4j 使用总结 Log4j 是 Apache 的一个开放源代码项目,通过使用 Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI 组件、甚至是套接口服务器、NT 的事件记录器、UNIX Syslog 守护进程等;我们也可以...

    若依框架使用的log4j2.16.0,修复log4j漏洞log4j2下载最新log4j2.16.0下载

    总结来说,Log4j2.16.0是一个关键的安全更新,解决了Log4j2框架中的“Log4Shell”漏洞。对于使用若依框架或其他依赖Log4j2的项目,升级到这个版本至关重要,可以避免系统遭受恶意攻击。用户需要下载并正确安装这个...

    Log4j使用总结.doc

    总结来说,Log4j是Java开发中不可或缺的工具,它提供了一种灵活、可配置的方式来管理和记录应用的日志信息,帮助开发者进行调试、故障排查和性能分析。通过合理配置和使用,可以大大提高开发和运维效率。

    log4j使用总结,非常详细

    Log4j 是一个广泛使用的Java日志框架,它允许开发者灵活地控制日志信息的输出。这个框架由三个核心组件组成:日志信息的优先级、输出目的地和输出格式。优先级从高到低分为ERROR、WARN、INFO、DEBUG,用于区分日志的...

    SpringBoot框架配置log4j和log4j2的配置代码

    Log4j和Log4j2是两种广泛使用的Java日志框架,它们提供了灵活的日志配置和高性能的日志处理能力。本文将详细介绍如何在SpringBoot项目中配置Log4j和Log4j2。 ### SpringBoot与Log4j Log4j是Apache的一个开源项目,...

    log4j使用详解log4j使用详解

    ### Log4j 使用详解 #### 一、Log4j简介 Log4j 是 Apache 的一个开源项目,通过使用 Log4j,开发者能够控制日志信息的输出等级及去向,从而更加灵活地处理日志信息。它具有强大的功能,简单的配置,并且能够支持...

    log4j+slf4j实现 log4j测试代码,log4j+slf4j实现 log4j测试代码

    总结,SLF4J和Log4j的组合使用让日志管理更加灵活,开发者可以通过SLF4J的简洁API进行日志记录,同时利用Log4j的强大功能,如自定义输出格式和多种输出目的地。通过适当的配置和测试,我们可以确保日志系统按照预期...

    Log4j使用实例

    ### Log4j 使用实例详解 #### 一、Log4j简介 Log4j 是一个开源的日志记录框架,由 Apache 软件基金会提供。它允许开发者根据需求配置日志等级,并灵活选择日志信息的输出方式。Log4j 的核心组件包括 Logger、...

    log4j使用jar包和log4j.properties配置文件

    本文将详细探讨Log4j的使用,主要关注1.2.17版本的jar包以及配置文件`log4j.properties`。 ### 1. Log4j简介 Log4j是一个开源的日志组件,支持多种输出格式,如控制台、文件、数据库等。它的核心概念包括Logger、...

    log4j使用详细方法

    **日志框架Log4j详解** Log4j是Apache组织提供的一款开源的日志记录工具,广泛应用于Java开发中。...通过阅读提供的"log4j使用方法"文档,你将能更深入地了解Log4j的配置和使用技巧,为你的开发工作带来便利。

    如何使用Log4j如何使用Log4j

    #### 四、使用Log4j记录日志 1. **引入Log对象**: ```java protected final Log log = LogFactory.getLog(getClass()); ``` 在Java类中,需要引入Log对象以便记录日志信息。 2. **记录日志信息**: ```...

    java 中log4j包总结的各个版本

    总结来说,Log4j-1.2.4是Log4j的一个经典版本,虽然功能可能没有最新版本强大,但在许多项目中仍然被广泛使用,尤其对于那些不追求最新特性的稳定项目。了解和掌握它的使用方法,可以帮助我们更好地管理和调试Java...

    log4j使用jar文件

    Log4j是一款广泛使用的Java日志记录框架,它允许开发者以灵活的方式控制应用程序的日志输出。这个框架的主要目的是提供一种简单、高效的日志记录机制,帮助开发者调试代码、追踪问题,以及收集运行时信息。在Java...

    apache log4j使用大全

    Apache Log4j 是一个广泛使用的开源日志框架,它为Java应用程序提供了强大的日志记录功能。Log4j 的主要优点在于它的灵活性和可配置性,允许开发者根据需要调整日志的输出目的地、格式以及级别。 **配置Log4j** ...

    log4j.rar log4j使用方法

    标题“log4j.rar log4j使用方法”暗示了我们要讨论的是一个关于log4j日志框架的压缩包文件,其中包含了如何使用log4j的指导资料。log4j是Java编程语言中广泛使用的开源日志记录工具,它允许开发者灵活地控制日志信息...

    log4j-1.2.15.jar

    本文将详细解析Log4j 1.2.15.jar这个版本的核心概念、使用方法以及重要特性。 一、Log4j简介 Log4j是由Apache软件基金会开发的一个开源日志组件,主要为Java应用程序提供日志服务。它的设计理念是让日志输出变得...

    log4j-1.2.17的jar包以及依赖包,还有一份log4j的配置文件,输出到控制台和文件夹两种配置

    总结来说,Log4j-1.2.17提供了灵活的日志管理功能,通过配置文件可以定制化日志输出的方式和内容,对于开发、调试和维护Java应用具有极大的帮助。尽管有更新的版本如Log4j2可用,但Log4j 1.x仍然在许多项目中得到...

    log4j jar包

    总结,Log4j作为Java日志处理的重要工具,其灵活性和强大功能使其在开发和运维工作中占据了重要地位。了解并熟练掌握Log4j的使用,有助于提升开发效率,优化系统的可维护性。然而,随着技术的发展,建议关注更新的...

    Log4J完整说明和配置

    - `org.apache.log4j.PatternLayout`:使用模式布局。 - `ConversionPattern`:定义输出的格式,例如`[framework]%d-%c-%-4r[%t]%-5p%c%x-%m%n`表示输出的信息包括框架名称、日期、线程ID等。 ##### 3.4 文件输出...

Global site tag (gtag.js) - Google Analytics