Log4j简介
Log4j是Apache的一个开源项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件,甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。
使用场景
方法入口、方法出口、异常处、需要跟踪的信息处
三大组件介绍
1.Logger
日志级别:
(从左向右级别逐渐升高)
TRACE->DEBUG->INFO->WARN->ERROR->FATA
2.Appenders
日志的输出目的地
3.Layouts
日志的输出格式
Logger
表示只会输出级别高于DEBUG的日志(即是全部日志,多用于测试)
Layouts
输出格式eg:
log4j.appender.stdout.layout.ConversionPattern=[%d] %r [%t] %-5p %c:%L - %m%n
则会以下面形式输出:
[2017-10-06 14:53:57,668] 4 [main] INFO zjj.log.LogTest:13 - end
%r:从程序开始运行到输出此日志所用毫秒数
%t:程序所属线程
%-5p:日志的级别
%c:日志所属的类名(简单类名)
%C{1}日志所属的类名(全类名)
%m:日志的消息内容
%n:换行
%L:日志所在程序的行标
%d:输出日志的时间
Appenders
输出的类型包含以下几种
1.ConsoleAppender 控制台
2.FileAppender 文件
3.DailyRollingFileAppender 文件(按天滚动,每天新增一个文件)
4.RollingFileAppender(按量滚动,达到定量后,新增文件)
5.WriterAppender(将日志信息以流格式发送到任意指定的地方)
日志数据量小:使用DailyRollingFileAppender 便于分类查看日志
日志数据量大:使用RollingFileAppender
log4j.properties文件配置模板
log4j.rootLogger=DEBUG, Console ,File ,DailyRollingFile ,RollingFile
#Console
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n
#File
log4j.appender.File = org.apache.log4j.FileAppender
log4j.appender.File.File = F://EclipseWeb//mylogs//log3.log
log4j.appender.File.layout = org.apache.log4j.PatternLayout
log4j.appender.File.layout.ConversionPattern =%d [%t] %-5p [%c] - %m%n
#DailyRollingFile
log4j.appender.DailyRollingFile = org.apache.log4j.DailyRollingFileAppender
log4j.appender.DailyRollingFile.File = F://EclipseWeb//mylogs//log3.log
log4j.appender.DailyRollingFile.layout = org.apache.log4j.PatternLayout
log4j.appender.DailyRollingFile.layout.ConversionPattern =%d [%t] %-5p [%c] - %m%n
#RollingFile
log4j.appender.RollingFile = org.apache.log4j.RollingFileAppender
log4j.appender.RollingFile.File = F://EclipseWeb//mylogs//log3.log
log4j.appender.RollingFile.MaxFileSize=1KB
log4j.appender.RollingFile.MaxBackupIndex=3
log4j.appender.RollingFile.layout = org.apache.log4j.PatternLayout
log4j.appender.RollingFile.layout.ConversionPattern =%d [%t] %-5p [%c] - %m%n
rootLogger
1.指定日志输出级别为DEBUG
2.后面指定了4中输出对象(名称自定义)
Console (控制台)
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
这两行代码是固定不变的不需要我们编写(其它输出方式同理)
log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n
这行代码指定了输出格式:当前时间 [所属线程] 日志级别 [所属类] -内容并换行
File
log4j.appender.File.File = F://EclipseWeb//mylogs//log3.log
将日志log3.log输出到:F:\EclipseWeb\mylogs 下
RollingFile
1.MaxFileSize :
是日志文件的最大尺寸,根据实际需求来定 。
2.MaxBackupIndex:
是日志文件的个数,超过此个数,则覆盖。
案例
1.导入jar包
2.建立测试类
public class LogTest {
//注意导入的包:org.apache.log4j.Logger
private static final Logger logger = Logger.getLogger(LogTest.class);
public static void main(String[] args) {
logger.info("begin");
System.out.println("模拟程序运行");
logger.info("end");
}
}
3.log4j.properties
使用Console和DailyRollingFile输出。
4.控制台运行结果
5.磁盘路径输出结果
注:新的一天会有新的文件产生。
总结
由于本人水平有限所以就只能理解到这个高度,如果哪处有不对的地方,多谢指点出来,谢谢!
参考
log4j.properties的代码是参考下面这位朋友的,感谢这位朋友。
链接:http://www.cnblogs.com/wqsbk/p/6817886.html