log4j配置文件简要记录

和大多数配置文件一样,log4j配置文件也有key-value形式和xml形式。这里主要记录一下key-value的形式

我们通过配置,可以创建出Log4j的运行环境。Log4j由三个重要的组件构成:日志信息的优先级,日志信息的输出目的地,日志信息的输出格式。

一、直接看一个配置文件(log4j.properties)

 # 配置根log,第一个参数为你想要输出的日志的等级,后面的是自定义的输出源(appender)
log4j.rootLogger = debug,console,I,E

### 这里定义第一个输出源的相关信息 

#输出源console输出到控制台
log4j.appender.console = org.apache.log4j.ConsoleAppender
log4j.appender.console.Target = System.out
 #日志格式输出方式,选着这种方式需要自定义格式
log4j.appender.console.layout = org.apache.log4j.PatternLayout
#自定义格式
log4j.appender.console.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n 

### 输出INFO级别的日志信息到G://PetLoveWorkSpace//ZRJCashVip//logs/info.log
# I 是第二个输出源
log4j.appender.I = org.apache.log4j.DailyRollingFileAppender
log4j.appender.I.File = G://PetLoveWorkSpace//ZRJCashVip//logs/info.log
log4j.appender.I.Append = true
# 这里可以配置本输出源打印的级别
log4j.appender.I.Threshold = INFO
log4j.appender.I.layout = org.apache.log4j.PatternLayout
log4j.appender.I.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n

### print error to = E://logs/error.log ###
log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
log4j.appender.E.File =G://PetLoveWorkSpace//ZRJCashVip//logs/error.log
log4j.appender.E.Append = true
log4j.appender.E.Threshold = ERROR
log4j.appender.E.layout = org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n

这里配置,所有日志将会在控制台输出。另外,INFO级别的日志还会打印到info.log文件。ERROR级别的日志打印到error.log

二、log4j配置文件详解

 1、log4j.rootLogger = debug,console,I,E

 这里log4j.rootLogger=日志级别,appender1, appender2, ….

  • 日志级别:all < debug < info < warn < error < fatal < off
  • rootLogger默认是对整个工程生效,如果只想对某些包操作,那么:log4j.logger.com.service=info, appender1, appender2, ….表示该日志对package com.service生效

2、log4j.appender.I = org.apache.log4j.DailyRollingFileAppender

这里:log4j.appender.appender1=org.apache.log4j.日志输出的地方

  • ConsoleAppender(控制台)
  • FileAppender(文件)
  • DailyRollingFileAppender(每天产生一个日志文件,例如上面这个语句)
  • RollingFileAppender(文件大小到达指定尺寸时产生一个新的文件)
  • WriteAppender(将日志信息以流格式发送到任意指定的地方)
  • JDBCAppender(将日志信息保存到数据库中)

3、log4j.appender.I.File = G://PetLoveWorkSpace//ZRJCashVip//logs/info.log

这里: log4j.appender.appender1.File = 日志文件保存的地方

4、log4j.appender.I.Threshold = INFO 

这里:根据日志别来打印,appender I 的级别是info,那么所有info级别的日志都将打印到appender I 指定的地方(一般是文件中嘛),比如,我上面配置文件中指定appender I 打印到info.log里。

这一条很有用,用这样的方法我们可以将error级别的之日信息单独打印到一个文件里,定位问题的时候就省去了再一堆日志文件里慢慢找错误信息的麻烦了。

5、log4j.appender.I.layout = org.apache.log4j.PatternLayout

这里:log4j.appender.appender1.layout=org.apache.log4j.日志布局格式

所谓的日志布局格式,就是指打印出来的日志适合什么样子的。

  • HTMLLayout(以HTML表格形式布局)
  • SimpleLayout(包含日志信息的级别和信息字符串)
  • TTCCLayout(包含日志产生的时间,执行绪,类别等信息)
  • PatternLayout(可以灵活的指定布局格式,常用

这里的例子使用了最后一个,这种灵活指定的布局格式我们需要加上第六条,显示指定打印的具体格式。其他三条,可以试试就知道是什么样的了。

6、log4j.appender.I.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n

这里:log4j.appender.appender1.layout.ConversionPattern=日志输出格式。

日志输出格式是自己指定的,具体这些符号代表什么意思如下:

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

7、log4j.appender.I.Append = true

意思是在日志文件后追加。

三、关于log4j的应用,

     1.得到记录器

使用Log4j,第一步就是获取日志记录器,这个记录器将负责控制日志信息。其语法为:

public static Logger getLogger( String name)

通过指定的名字获得记录器,如果必要的话,则为这个名字创建一个新的记录器。Name一般取本类的名字,比如:

static Logger logger = Logger.getLogger ( TestLog.class.getName () )

    2.读取配置文件

当获得了日志记录器之后,第二步将配置Log4j环境.这里根据应用来配置加载log配置文件。

    3、插入日志信息

就是在相应的业务逻辑处调用日志记录器,使用不同优先级别的日志记录语句插入到想记录日志的地方。

  

 private static Logger logger = Logger.getLogger(TestLog.class);

logger.debug ( Object message ) ;  

logger.info ( Object message ) ;  

logger.warn ( Object message ) ;  

logger.error ( Object message ) ;

具体使用方式比较简单,但是做好日志的记录方式,和打印内容还是很难的,好的日志记录,是对于排查系统的错误与异常很有帮助的。

要是打印的日志在系统出问题时帮不上任何忙,要它何用。

关于如何做好日志记录,我还任重道远,可以参考:http://www.cnblogs.com/rollenholt/p/5392338.html

时间: 2024-11-05 12:32:38

log4j配置文件简要记录的相关文章

log4j 配置文件 (XML/.properties)

xml: <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'> <appender name="STDOUT" class=

springmvc+log4j操作日志记录,详细配置

没有接触过的,先了解一下:log4j教程 部分内容来:log4j教程 感谢! 需要导入包: log包:log4j-12.17.jar 第一步:web.xml配置 <!-- log4j配置,文件路径,因为是跟随项目启动 --> <context-param> <param-name>log4jConfigLocation</param-name> <param-value>/WEB-INF/log4j.xml</param-value>

log4j配置文件动态指定日志文件名称

我们在项目当中经常会使用log4j进行日志记录,偶尔会遇到一些要求,比如日志文件名称按照启动参数动态配置,而不去修改log4j.xml,比较简单的一种做法是,通过设置系统属性的方式实现,代码: 1 if(args.length>=0){ 2 System.setProperty("log4fFile", args[0]); 3 }else{ 4 System.setProperty("log4fFile","log/runtime.log"

log4j - 配置文件

Log4J的配置文件(Configuration File)就是用来设置记录器的级别.存放器和布局的,它可接key=value格式的设置或xml格式的设置信息. 通过配置,可以创建出Log4J的运行环境. 1. 配置文件  Log4J配置文件的基本格式如下: 代码如下: 1 #配置根Logger 2 3 log4j.rootLogger = [ level ] , appenderName1 , appenderName2 , … 4 5 #配置日志信息输出目的地Appender 6 7 log

log4j配置文件详解(转)

Log4J的配置文件(Configuration File)就是用来设置记录器的级别.存放器和布局的,它可接key=value格式的设置或xml格式的设置信息.通过配置,可以创建出Log4J的运行环境. 1. 配置文件Log4J配置文件的基本格式如下: #配置根Loggerlog4j.rootLogger = [ level ] , appenderName1 , appenderName2 , …#配置日志信息输出目的地Appenderlog4j.appender.appenderName =

log4j 将日志记录到数据库

需要以下jar包: ---log4j commons-loggin-1.1.1.jar log4j-1.2.16.jar ---mysql mysql-connector-java-5.1.15-bin.jar ---log4j.properties配置内容 log4j.rootLogger=INFO,DATABASE #JDBC Appender log4j.appender.DATABASE=org.apache.log4j.jdbc.JDBCAppender log4j.appender.

Log4j配置文件解读和模板页收藏

最近对log4j的日志配置小有兴趣,仔细研究了下,终于有了清晰的认识,顺便做了个日志文件的模板,方便以后查看和使用,顺便也为那些跟我当初一样,看日志文件看得云里雾里的朋友提供点详细的简单的资料. #配置总的日志级别和输出目的:注意总的日志级别会覆盖掉下面输出目的地各自的日志级别,本人设置为空及日志级别由各子项自己控制 #A1 A2分别是输出目的地的名字:本人A1设置为控制台打印 A2设置为记录日志到文件 log4j.rootLogger= ,A1, A2 #A1输出的详细配置ConsoleApp

log4j配置文件详细解释

log4j.properties文件中语句的解释 1 此句为将等级为INFO的日志信息输出到stdout和R这两个目的地,stdout和R的定义在下面的代码,可以任意起名.等级可分为OFF.FATAL.ERROR.WARN.INFO.DEBUG.ALL,如果配置OFF则不打出任何信息,如果配置为INFO这样只显示INFO, WARN, ERROR的log信息,而DEBUG信息不会被显示,具体讲解可参照第三部分定义配置文件中的logger. 2 3 log4j.rootCategory=INFO,

log4j 配置文件 详解 + 实例 分析

Log4J的配置文件(Configuration File)就是用来设置记录器的级别.存放器和布局的,它可接key=value格式的设置或xml格式的设置信息.通过配置,可以创建出Log4J的运行环境. 1. 配置文件 Log4J配置文件的基本格式如下:  #配置根Logger log4j.rootLogger  =   [ level ]   ,  appenderName1 ,  appenderName2 ,  - #配置日志信息输出目的地Appender log4j.appender.a