天天看点

举个简单的例子说一下java日志文件的配置信息

举个例子,日志文件的配置是这个样得,如下:

1.log4j.logger.interface= INFO,interface

2.log4j.appender.interface= org.apache.log4j.DailyRollingFileAppender

3.log4j.appender.interface.File= logs/interface/interface.log

4.log4j.appender.interface.DatePattern = '.'yyyy-MM-dd 

5.log4j.appender.interface.layout= org.apache.log4j.PatternLayout

6.log4j.appender.interface.layout.ConversionPattern= %d{yyyy-MM-dd HH:mm:ss.SSS}|%p|%c:%l|%m%n

7. #log4j.appender.interface.MaxFileSize=10240KB

8.log4j.appender.interface.Encoding= UTF-8 

9. #log4j.appender.interface.MaxBackupIndex=10

解析一下上面得日志:

第一行:日志的等级为info,一个interface的日志,格式就是如下:

log4j.rootLogger = [ level ] , appenderName1, appenderName2, …

log4j.rootLogger = 日志级别,输出位置1,输出位置2...( 有时候会看到stdout,stdout是控制台输出)

第二行:每天产生一个日志文件,格式如下:

log4j.appender.appenderName = className

这里是设置输出的目的地,是控制台?文件?你自己设置,有5种可以选

(1) org.apache.log4j.ConsoleAppender( 控制台)

(2) org.apache.log4j.FileAppender( 文件)

(3)o rg.apache.log4j.DailyRollingFileAppender( 每天产生一个日志文件)

(4) org.apache.log4j.RollingFileAppender( 文件大小到达指定尺寸的时候产生一个新的文件)

(5) org.apache.log4j.WriterAppender( 将日志信息以流格式发送到任意指定的地方)

第三行:日志存放的位置和日志的名称

第四行:滚动日志文件,也就是多久产生一个新的文件

可以指定monthly(每月)、 weekly(每周)、daily(每天)、half-daily(每半天)、hourly(每小时)和

minutely(每分钟)六个频度,这是通过为 DatePattern选项赋予不同的值来完成的。DatePattern选

项的有效值为:

'.'yyyy-MM,对应monthly( 每月)

'.'yyyy-ww,对应weekly( 每周)

'.'yyyy-MM-dd,对应daily( 每天)

'.'yyyy-MM-dd-a,对应half-daily( 每半天)

'.'yyyy-MM-dd-HH,对应hourly( 每小时)

'.'yyyy-MM-dd-HH-mm,对应minutely( 每分钟)

第五行:日志输出格式,Log4j提供的layout有以下几种:

org.apache.log4j.HTMLLayout( 以HTML表格形式布局),

org.apache.log4j.PatternLayout( 可以灵活地指定布局模式),

org.apache.log4j.SimpleLayout( 包含日志信息的级别和信息字符串),

org.apache.log4j.TTCCLayout( 包含日志产生的时间、线程、类别等等信息)

第六行:日志指定布局输出的日志格式,打印格式格式化日志信息,如下:

       %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   输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。

第七行: 注释掉了,是一个文件的大小,超过了重新创建一个

第八行:日志文件的编码格式是哪一种

第九行: 注释掉了,是最多有多少个日志文件,不要和第七行混了

牢记:

1.Log4j有三个主要的组件: Loggers(记录器),Appenders (输出源)和Layouts(布局)。

这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出。综合使用这

三个组件可以轻松地记录信息的类型和级别,并可以在运行时控制日志输出的样式和

位置。

Loggers组件在此系统中被分为五个级别:DEBUG、INFO、WARN、ERROR和FATAL。这

五个级别是有顺序的,DEBUG < INFO < WARN < ERROR < FATAL,分别用来指定这条

日志信息的重要程度,明白这一点很重要,Log4j有一个规则:只输出级别不低于设

定级别的日志信息

2、配置日志信息输出目的地(appender):

appenderName:自定义appderName,在log4j.rootLogger设置中使用;

className:有如下5种:

(1)org.apache.log4j.ConsoleAppender(控制台)

(2)org.apache.log4j.FileAppender(文件)

(3)org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)

(4)org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)

(5)org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)

3、配置日志信息的输出格式(Layout):

log4j.appender.appenderName.layout=className

className:可设值如下:

(1)org.apache.log4j.HTMLLayout(以HTML表格形式布局)

(2)org.apache.log4j.PatternLayout(可以灵活地指定布局模式)

(3)org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串)

(4)org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)