log4j
log4j的简介
Log4j:(Log for java)
1.是使用Java语言编写的一个日志框架
2.是Apache的一个开源项目
3.记录我们程序中的日志信息
4.可以将日志信息输出到我们指定的目的地
.log(日志文件)
log4j的作用:
1.记录代码中变量的变化,用于程序的调试和后期维护
2.可以周期性的保存一些数据,用于后期对数据的分析
3.通过设置日志信息的级别,来便于我们的管理
log4j的组成
1.日志的记录器
日志的输出级别
OFF 级别最高,用于关闭所有的日志输出
ALL 级别最低,用于开启所有的日志输出
Fatal 严重的错误事件,将导致我们的程序终止
Error 错误事件,不会影响我们程序的继续执行
Warn 可能存在潜在的错误场景
Info 指的是粗粒度级别上的使用
Debug 指的是细粒度级别上的使用
Trace 比Debug还要细的
开发环境(开发阶段):使用的日志级别比较低 Debug
生产环境(项目上线):建立把Debug细粒度的设置warn
2.日志的输出格式(Layout)
%p 日志信息的优先级
%d 日志信息的输出时间 %d(yyy-mm-dd hh:mm:ss)
%c 日志信息的输出类
%1 日志信息的输出位置:类+线+行号
%M 日志信息的输出 所在方法
%m 日志信息的输出内容
%n 输入日志信息之后换行
%t 日志信息的输出 所在线程
%r 从程序启动到输出日志信息所经历的时间(毫秒)
3.日志的输出目的地(Appender)
01.把我们的日志信息输出到某个地址
02.可以同指定多个输出地
03.一个输出地就对应一个Appender
Log4j的使用
Log4J的配置文件(Configuration File)就是用来设置记录器的级别、存放器和布局的,它可接key=value格式的设置或xml格式的设置信息。通过配置,可以创建出Log4J的运行环境。
配置文件
Log4J配置文件的基本格式如下:
1.#配置根Logger
1.log4j.rootLogger = [ level ] , appenderName1 , appenderName2 , …
2.#配置日志信息输出目的地Appender
1.log4j.appender.appenderName = fully.qualified.name.of.appender.class
2.log4j.appender.appenderName.option1 = value1
3. log4j.appender.appenderName.optionN = valueN
3.#配置日志信息的格式(布局)
1..log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class
2..log4j.appender.appenderName.layout.option1 = value1
3.. log4j.appender.appenderName.layout.optionN = valueN
其中[level] 是日志输出级别,共有5级:
1.FATAL:级别 0
2.ERROR :级别 3
3.WARN:级别 4
4.INFO:级别 6
5.DEBUG :级别 7
Appender为日志输出目的地,Log4j提供的appender有以下几种:
1.org.apache.log4j.ConsoleAppender(控制台),
2.org.apache.log4j.FileAppender(文件),
3org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),
4.org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
5.org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),
Layout:日志输出格式,Log4j提供的layout有以下几种:
1.org.apache.log4j.HTMLLayout(以HTML表格形式布局),
2.org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
3.org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
4.org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)
#把日志输出到文件中 log4j.appender.file=org.apache.log4j.DailyRollingFileAppender #指定额度 log4j.appender.file.DatePattern='.'yyyy-MM-dd-HH-mm'.log' #指定输出文件的位置 第一次生成的文件名称 log4j.appender.file.File=e:/log/log4j.log log4j.appender.file.Layout=org.apache.log4j.PatternLayout log4j.appender.file.Layout.ConversionPattern=%d{yyyy-MM-dd hh:mm:ss} %l %m %n
#指定日志输出的目的地 控制台>>>ConsoleAppender #怎么实例化这个对象 log4j.appender.console=org.apache.log4j.ConsoleAppender #console.target=System.out/err 对象名.属性名 log4j.appender.console.Target=System.out #console.layout=new PatternLayout(); 创建输出格式对象 log4j.appender.console.Layout=org.apache.log4j.PatternLayout #console.layout.ConversionPatten=%d{yyyy-mm-dd hh:mm:ss} %l %m %n指定输出格式 log4j.appender.console.Layout.ConversionPattern=%d{yyyy-MM-dd hh:mm:ss}%l %m %n #指定日志输入的级别 error warn info debug trace #log4j.rootLogger=debug,console #指定包下面的输出 log4j.logger.cn.haha=warn,console
#002.将信息输出到文件中,按文件大小创建 log4j.appender.file2=org.apache.log4j.RollingFileAppender #指定输出文件的位置 log4j.appender.file2.File=e:/logs/log4j.log #每个文件的最大容量 log4j.appender.file2.MaxFileSize=1kb #如果超过了大小,默认产生的额外文件的数量 log4j.appender.file2.MaxBackupIndex=3 #设置内容满了之后是否覆盖之前内容 log4j.appender.file2.Append=true log4j.appender.file2.Layout=org.apache.log4j.PatternLayout log4j.appender.file2.Layout.ConversionPattern=%d{yyyy-MM-dd hh:mm:ss} %c %l %m %n #指定日志输入级别 error warn info debug trace #log4j.rootLogger=warn,console #指定包下的日志 输出 log4j.logger.cn.fkx=debug,console,file,file2