log4j是用java写的优秀日志工具包。
学习时的参考网址:http://blog.csdn.net/nengyu/article/details/6804887
jar包的下载地址
测试代码如下:
1 | package com.dingsheng.test; |
log4j的配置文件log4j.properties内容如下:
1 | log4j.rootLogger = DEBUG, A1 |
相关说明:
定义了一个根记录器及其级别: DEBUG<INFO<WARN<ERROR<FATAL。
定义根记录器的格式为:1
log4j.rootLogger = [ level ], appendName1, appendName2, …appendNameN
定义非根记录器的格式:1
log4j.logger.loggerName1 = level ],appendName1,appendName2,...appendNameN
同一个记录器可有多个输出端。
定义appender的输出目的地,格式:
1 | log4j.appneder.appendName = 目的地格式 |
主要有以下几种常用的输出目的地:1
2
3
4
5
6org.apache.log4j.ConsoleAppender 将日志信息输出到控制台
org.apache.log4j.FileAppender 将日志信息输出到一个文件
org.apache.log4j.DailyRollingFileAppender 将日志信息每天输出到一个新的文件
org.apache.log4jRollingFileAppender 将日志信息输出到一个文件,能够指定文件的大小,当文件大小到达指定尺寸时会自动把文件改名
org.apache.log4j.WriteAppender 将日志信息以流的形式发送到任意指定的地方
org.apache.log4j.jdbc.JDBCAppender 将日志信息通过JDBC输出到数据库中
定义所选目的地的相关参数,格式:
1 | log4j.appender.appendName.optionName = value |
输出格式(布局)layout,格式:
1 | log4j.appender.appendName.layout = 布局 |
主要有以下几种布局模式:1
2
3org.apache.log4j.HTMLLayout 以HTML表格形式布局
org.apache.log4j.PatternLayout 可以灵活指定布局模式
org.apache.log4j.SimpleLayout 包含日志信息的级别和信息字符串
定义与所选布局模式相关的设置信息,格式:
1 | log4j.appender.appendName.layout.optionName = value |
其中有一个optionName = ConversionPattern,这个ConversionPattern有许多个参数:1
2
3
4
5
6
7
8
9%c 输出日志信息所属类的全名
%d 输出日志时间点的日期或时间,默认格式是ISO8601,也可以在其后指定格式,比如: %d{yyy-MM-dd HH:mm:ss},输出类似2016-07-06 17:15:30
%f 输出日志信息所属类的类名
%l 输出日志时间的发生位置,即输出日志信息的语句处于它所在类的第几行
%m 输出代码中指定的信息,如log(message)中的message
%n 输出一个回车换行符,windows平台为“/r/n”,Unix平台为"/n"
%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL.如果是调用debug(),则输出debug
%r 输出自应用启动到输出该日志信息所耗费的毫秒数
%t 输出产生改日志时间的线程名
log4j.properties中更详细的配置1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30#定义了两个输出端
log4j.rootLogger = DEBUG, A1, A2
#定义A1输出到控制器
log4j.appender.A1 = org.apache.log4j.ConsoleAppender
#定义A1的布局模式为PatternLayout
log4j.appender.A1.layout = org.apache.log4j.PatternLayout
#定义A1的输出格式
log4j.appender.A1.layout.ConversionPattern = %-4r [%t] %-5p %c - %m%n
#定义A2输出到文件
log4j.appender.A2 = org.apache.log4j.RollingFileAppender
#定义A2要输出到哪一个文件
log4j.appender.A2.File = F://example3.log
#定义A2的输出文件的最大长度
log4j.appender.A2.MaxFileSize = 1KB
#定义A2的备份文件数
log4j.appender.A2.MaxBackupIndex = 3
#定义A2的布局模式为PatternLayout
log4j.appender.A2.layout = org.apache.log4j.PatternLayout
#定义A2的输出格式
log4j.appender.A2.layout.ConversionPattern = %d{yyyy-MM-dd hh:mm:ss}:%p %t %c - %m%n
#定义A3输出到数据库
log4j.appender.A3 = org.apache.log4j.jdbc.JDBCAppender
log4j.appender.A3.BufferSize = 40
log4j.appender.A3.Driver = com.mircsoft.jdbc.sqlserver.SQLServerDriver
log4j.appender.A3.URL = jdbc:mircsoft:sqlserver://127.0.0.1:1433;DatabaseName=aa
log4j.appender.A3.User = sa
log4j.appender.A3.password =
log4j.appender.A3.layout = org.apache.log4j.PatternLayout
log4j.appender.A3.layout.ConversionPattern = INSERT INTO log4j