记log4j的使用
来源:互联网 发布:淘宝矫正牙套管不管用 编辑:程序博客网 时间:2024/06/14 20:32
以一个log4j.properties的代码为例子进行解释
log4j.rootCategory=INFO, stdout , Rlog4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern=[QC] %p [%t] %C.%M(%L) | %m%nlog4j.appender.R=org.apache.log4j.DailyRollingFileAppenderlog4j.appender.R.File=D:\\Tomcat 5.5\\logs\\qc.loglog4j.appender.R.layout=org.apache.log4j.PatternLayoutlog4j.appender.R.layout.ConversionPattern=%d-[TS] %p %t %c - %m%nlog4j.logger.com.neusoft=DEBUGlog4j.logger.com.opensymphony.oscache=ERRORlog4j.logger.net.sf.navigator=ERRORlog4j.logger.org.apache.commons=ERRORlog4j.logger.org.apache.struts=WARNlog4j.logger.org.displaytag=ERRORlog4j.logger.org.springframework=DEBUGlog4j.logger.com.ibatis.db=WARNlog4j.logger.org.apache.velocity=FATALlog4j.logger.com.canoo.webtest=WARNlog4j.logger.org.hibernate.ps.PreparedStatementCache=WARNlog4j.logger.org.hibernate=DEBUGlog4j.logger.org.logicalcobwebs=WARN
配置根Logger
log4j.rootCategory=INFO, stdout , R
这句的意思是将等级为INFO的日志输出到stdout,R两个目的地。stdout,R的名称可以自定义,后面将进行解释。
日志等级可以划分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL。配置OFF则不打印任何日志信息,如果配置INFO,将打印FATAL、ERROR、WARN、INFO的log信息,不会打印DEBUG的信息。
配置日志信息输出目的地 Appender
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
定义stdout的输出端是哪种输出类型。有几种输出方式:
- org.apache.log4j.ConsoleAppender(控制台),
- org.apache.log4j.FileAppender(文件),
- org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),
- org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)
- org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
配置日志信息的格式(布局)Layout
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
定义stuout的输出端的layout是哪种类型:
- org.apache.log4j.HTMLLayout(以HTML表格形式布局),
- org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
- org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
- org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)
格式化日志
log4j.appender.stdout.layout.ConversionPattern= [QC] %p [%t] %C.%M(%L) | %m%n
使用PatternLayout布局需要定义ConversionPattern:
- %m 输出代码中指定的消息;
- %M 输出打印该条日志的方法名;
- %p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL;
- %r 输出自应用启动到输出该log信息耗费的毫秒数;
- %c 输出所属的类目,通常就是所在类的全名;
- %t 输出产生该日志事件的线程名;
- %n 输出一个回车换行符,Windows平台为”rn”,Unix平台为”n”;
- %d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyyy-MM-dd HH:mm:ss,SSS},输出类似:2002-10-18 22:10:28,921;
- %l 输出日志事件的发生位置,及在代码中的行数;
- [QC]是log信息的开头,可以为任意字符,一般为项目简称。
log4j.appender.R.File=D:\\Tomcat 5.5\\logs\\qc.log
文件格式的输出目的地
log4j.logger.com. neusoft =DEBUG
指定com.neusoft包下的所有类的等级为DEBUG
人各有所好,所以实现日志系统的工具也不尽相同,有人喜欢log4j,java自带的log,或者logback等等,所以一旦系统更换日志系统的时候就需要不断更改代码,为此slf4j出现解决了此问题。
slf4j类似于java中的接口,log4j,logback相当于slf4j的实现类,所以只需引用slf4j,不需关注具体的实现类。因此在代码中,都使用slf4j编写,以后更换日志系统就不需要更改代码,只需替换slf4j的实现。但是一个系统中只能有一个slf4j的实现日志系统,同时需要去除其他jar包对日志系统的依赖。
在项目中集成slf4j和log4j需要引用如下依赖:
<dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.7</version></dependency><dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.7.7</version></dependency><dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.16</version></dependency>
在代码中则调用slf4j包中的API
- 记log4j的使用
- Log4j的使用!
- Log4j的使用
- Log4j的使用
- log4j的第一步使用
- Log4j的使用
- log4j的使用
- Log4j的简单使用
- Log4j的使用
- Log4j的使用
- log4j/log4e的使用
- log4j/log4e的使用
- Log4j 的灵活使用
- log4j/log4e的使用
- log4j的使用
- log4j的使用
- Log4j的使用
- LOG4J的使用- -
- RGB通道分离
- Bit++_Codeforces_282A
- Hystrix 源码解析 —— 请求执行(四)之失败回退逻辑
- PyQt5学习笔记01----第一个窗口
- Android JNI C/C++ long 的长度 在 32 / 64 位下 不同
- 记log4j的使用
- AJAX STATUS=0
- MYSQL | ERROR 1305(42000) SAVEPOINT *** DOES NOT EXIST
- Android jks文件签名-->keystore文件签名
- 跨域iframe高度自适应(兼容IE/FF/OP/Chrome)
- 正则表达式使用记录
- 17.12.11,web学习第二十三天,还有一年,努力吧青年Listener
- D3D11显示ffmpeg解码出的YUV420P数据
- 引用图片防盗链js