Jakarta Log4j 日志库
–
使用一个专门的日志记录包,可以减轻对成千上万的System.out.println语句的维护成本
使用log4j涉及3个主要概念:
ü
公共类
Logger
: Logger 负责处理日志记录的大部分操作。
ü
公共接口
Appender
:
Appender
负责控制日志记录操作的输出。
公共抽象类
Layout
: Layout 负责格式化Appender的输出
log4j日志级别
:
debug:调试级别
info:信息级别
warn:警告级别
error:错误级别
fatal:崩溃级别
static = Logger.getLogger(Test.class);
String
pattern
= "Milliseconds since program start: %m%n";
PatternLayout layout = new PatternLayout(
pattern
);
ConsoleAppender
appender
= new ConsoleAppender(
layout
);
logger.addAppender(
appender
);
logger.
setLeve
l((Level)
Level.DEBUG
);
logger.
debug
("Here is some DEBUG");
logger.
info
("Here is some INFO");
logger.
warn
("Here is some WARN");
//输出信息到文件
FileAppender = new FileAppender(layout,"log/1.txt",true);
Logger
logger
u
创建日志记录器
–
static Logger
logger
= Logger.getLogger(test.class);
–
logger
.setLevel((Level)Level.WARN);//
设置日志级别
u
创建日志格式
(Layout)
–
PatternLayout
layout
= new PatternLayout(“格式字符串”);
u
创建日志附加器
(
Appender
)
–
ConsoleAppender
appender
= new ConsoleAppender(
layout
);
u
日志对象设置附加器
–
logger
.addAppender(
appender
);
使用日志文件描述输出信息
u
在项目的src目录下加入log4j.properties文件,以描述日志信息
u
log4j.rootLogger=warn, toconsole
u
代表日志输出的基本描述。会应用到所有的日志输出。第一个表示输出级别,低于该级别的日志不会输出。第二个为输出appender 描述名
u
log4j.appender.toconsole=org.apache.log4j.ConsoleAppender
//appender类的全路径,输出到控制台
u
log4j.appender.toconsole.layout=org.apache.log4j.SimpleLayout
//appender输出的信息的格式,为简单格式输出
指定输出格式
u
log4j.appender.toconsole.layout=org.apache.log4j.PatternLayout
//设置信息格式化输出
u
log4j.appender.toconsole.layout.ConversionPattern=%d %p [%c] - %m%n
//设置格式化内容
%d:
输出日志时间点的日期或时间,默认格式为ISO8601
%p:
输出日志信息级别
%c:
输出日志信息所属的类目,通常就是所在类的全名
%m
: 输出代码中指定的消息
%n:
输出一个回车换行符
%M:
调用日志的方法名
日志输出的目的地
u
1.org.apache.log4j.ConsoleAppender(控制台)
u
2.org.apache.log4j.FileAppender(文件)
u
3.
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件
log4j.appender.toFile.DatePattern='-'yyyy-MM-dd'.log')
u
4.org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)
u
5、org.apache.log4j.jdbc.JDBCAppender(数据库)
DailyRollingFileAppender说明
u
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件
u
在DailyRollingFileAppender中可以指定monthly(每月)、weekly(每周)、daily(每天)、half-daily(每半天)、hourly(每小时)和minutely(每分钟)六个频度,这是通过为 DatePattern选项赋予不同的值来完成的。DatePattern选项的有效值为:
u
u
* ‘.’yyyy-MM,对应monthly(每月)
u
* ‘.’yyyy-ww,对应weekly(每周)
u
* ‘.’yyyy-MM-dd,对应daily(每天)
u
* ‘.’yyyy-MM-dd-a,对应half-daily(每半天)
u
* ‘.’yyyy-MM-dd-HH,对应hourly(每小时)
u
* ‘.’yyyy-MM-dd-HH-mm,对应minutely(每分钟)
输出到文件
u
log4j.appender.toFile=org.apache.log4j.FileAppender
u
log4j.appender.toFile.layout=org.apache.log4j.SimpleLayout
u
log4j.appender.toFile.File=log/aaa.txt
输出到网页
u
log4j.appender.toHTML=org.apache.log4j.DailyRollingFileAppender
u
log4j.appender.toHTML.layout=org.apache.log4j.HTMLLayout
log4j.appender.toHTML.File=log/aaa.html
输出到数据库
u
log4j.logger.com.lovo.dao=debug,productDao
u
log4j.appender.productDao=org.apache.log4j.jdbc.JDBCAppender
u
log4j.appender.productDao.layout=org.apache.log4j.PatternLayout
u
log4j.appender.productDao.layout.ConversionPattern=%d %p [%c] - %m%n
u
log4j.appender.productDao.URL=jdbc:jtds:sqlserver://localhost:1433/bank
u
log4j.appender.productDao.user=sa
u
log4j.appender.productDao.password=sa
u
log4j.appender.productDao.driver=net.sourceforge.jtds.jdbc.Driver
u
log4j.appender.productDao.sql=insert into log(content) values('%m')
为不同的包和不同的类设置级别
u
log4j.logger.com.lovo=error
设置com.lovo包中的类级别为error(
不包括子包
)。输出的appender由rootLogger指明。
u
log4j.logger.test=debug,toFile
设置test包中的类级别为debug(
不包括子包
)。输出的appender由toFile指明。
u
log4j.logger.com.lovo.HTMLTest=debug,toHTML
设置com.lovo.HTMLTest类级别为debug。输出的appender由toHTML指明。