log4j官网地址:http://logging.apache.org/
1.log4j的核心介绍
Logger:完成日志信息的处理
可以设置log4j的根级别(主要常用的级别由低到高分别为all,trace,debug,info,warn,error,fatal,off):
log4j.rootLogger=debug,appender1,appender2
也可以指定log4j作用的指定包名:
log4j.logger.xxx.xx(包名)=debug,appender1,appender2
Appender:设置日志信息的输出去向,可以指定一个地方或多个地方
常用的Appender有:
>org.apache.log4j.ConsoleAppender(输出到控制台)
>org.apache.log4j.FileAppender(输出到文件)
>org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)
>org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸产生一个新文件)
>org.apache.log4j.WriterAppender(将日志信息以串流格式发送到任意指定地方)
>org.apache.log4j.JdbcAppender(将日志信息保存到数据库)
Layout:设置日志信息的输出样式
常用的Layout有:
>org.apache.log4j.HTMLLayout(以HTML表格输出)
>org.apache.log4j.SimpleLayout(输出日志讯息级别及讯息字符串)
>org.apache.log4j.TTCCLayout(输出日志产生时间,执行绪,类别等)
>org.apache.log4j.PattenLayout(灵活指定布局模式,对样式进行定制,有%p,%r,%t,%f,%c,%d,%n等)
(%P输出优先级,%r输出应用启动到输出日志所耗毫秒数,%t输出产生该日志线程名,%f输出日志讯息所属类别的类别名,%c输出
日志讯息所属类全名,%d输出日志时间点,格式为%d{yyyy-MM-dd HH:MM:SS},%n输出换行符号)
2.log4j.properties的设置举例:
1).在控制台输出日志讯息
<!--设置log4j的根级别,主要常用的级别由低到高分别为all,trace,debug,info,warn,error,fatal,off--> log4j.rootLogger=debug,appender1 <!--设置日志的输出地点,可以是控制台或者是文件,或者二者一起--> log4j.appender.appender1=org.apache.log4j.ConsoleAppdender <!--设置日志的输出样式--> log4j.appender.appender1.layout=org.apache.log4j.TTCCLayout
2).以HTML文件形式输出日志信息:
log4j.rootLogger=debug,appender1 log4j.appender.appender1=org.apache.log4j.FileAppdender log4j.appender.appender1.layout=org.apache.log4j.HTMLLayout <!--保存在C盘根目录下的mylog4j.html--> log4j.appender.appender1.File=c:/mylog4j.html
3).同时在控制台和文件输出日志讯息
<!--设置log4j的根级别,主要常用的级别由低到高分别为all,trace,debug,info,warn,error,fatal,off--> log4j.rootLogger=debug,appender1,appender2 <!--控制台输出--> log4j.appender.appender1=org.apache.log4j.ConsoleAppdender <!--文件输出--> log4j.appender.appender2=org.apache.log4j.FileAppdender log4j.appender.appender2.File=c:/mylog4j.log <!--设置日志的输出样式--> log4j.appender.appender1.layout=org.apache.log4j.TTCCLayout
4).两个Appender的定制输出样式举例一:
log4j.rootLogger=debug,appender1,appender2 <!--同时在文件和控制台输出日志讯息--> log4j.appender.appender1=org.apache.log4j.FileAppdender log4j.appender.appender2=org.apache.log4j.ConsoleAppdender <!--保存在C盘根目录下的mylog4j.html--> log4j.appender.appender1.layout=org.apache.log4j.HTMLLayout log4j.appender.appender1.File=c:/mylog4j.html <!--设置控制台输出的样式为定制的--> log4j.appender.appender2.layout=org.apache.log4j.PatternLayout log4j.appender.appender2.layout.ConversionPattern=%r [%t] %p - %c -%l -%m%n
5).两个Appender的定制输出样式举例二:
log4j.rootLogger=debug,appender1,appender2
<!--第一个appender,使用HTML文件输出,样式为定制-->
log4j.appender.appender1=org.apache.log4j.FileAppdender
log4j.appender.appender1.layout=org.apache.log4j.HTMLLayout
log4j.appender.appender1.layout=org.apache.log4j.PatternLayout
log4j.appender.appender1.layout.ConversionPattern=[%d{yy/MM/dd HH:mm:ss:SSS}][%C-%M] %m%n
log4j.appender.appender1.File=c:/mylog4j.html
<!--第二个appender,使用控制台输出,样式为定制-->
log4j.appender.appender2=org.apache.log4j.ConsoleAppdender
log4j.appender.appender2.layout=org.apache.log4j.PatternLayout
log4j.appender.appender1.layout.ConversionPattern=[%d{HH:mm:ss:SSS}][%C-%M] %m%n
注意:在properties文件中"."后面不能加空格,否则编译出错!
3.测试类举例:
public class MyLog4j{
//Logger 初始化
private static Logger logger = Logger.getLogger(MyLog4j.class);
public static void main(String[] args){
logger.debug("This is debug logging!");
logger.info("This is info logging!");
logger.warn("This is warn logging!");
logger.error("This is error logging!");
}
}

2271

被折叠的 条评论
为什么被折叠?



