Apache Log4j详解
0.控制输出等级
[----------------------------------------------------------->
- log4j.rootLogger=(fatal) ,(error) ,(warn), (info), (debug) ,stdout
- 说明:括号内的是可选的输出等级,stdout是输出的地方,用于定义下面的属性
- 级别 fatal error warn info debug
- 等级 fatal > error > warn > info > debug
- 模板 log4j.rootLogger = [ 参数1 ] , [ 参数2] , [ 参数3 ] ,[ 参数4 ]
- 例子 log4j.rootLogger = ERROR
- log4j.rootLogger = fatal , error , warn , info , debug //支持多参
- 说明 可以支持多个参数,需要输出哪个等级的Log需要自行配置输出位置,输出形式
参数列表
[
- ERROR 为严重错误 主要是程序的错误
- WARN 为一般警告,比如session丢失
- INFO 为一般要显示的信息,比如登录登出
- DEBUG 为程序的调试信息
- OFF 关闭
]
<----------------------------------------------------------]
1.控制输出位置
[----------------------------------------------------------->
- 先定义DEBUG级别
- 模板 log4j.appender.DEBUG=org.apache.log4j.[输出位置参数] ##定义输出位置
- 列子 log4j.appender.DEBUG=org.apache.log4j.ConsoleAppender ##定义输出到控制台
参数列表
[
- ConsoleAppender (控制台)
- FileAppender (文件)
- DailyRollingFileAppender (每天产生一个日志文件)
- RollingFileAppender (文件大小到达指定尺寸时产生一个新的文件)
- WriteAppender (将日志信息以流格式发送到任意指定的地方)
- JDBCAppender (将日志信息保存到数据库中)
]
<----------------------------------------------------------]
[----------------------------------------------------------->
#如果要将Log输出到文件中
- log4j.appender.stdout.File=文件目录及文件
- log4j.appender.stdout.MaxFileSize=最大文件大小
- log4j.appender.stdout.MaxBackupIndex=备份文件个数
- log4j.appender.ServerDailyRollingFile.Append=true //追加开关
- log4j.appender.stdout.Encoding=UTF-8 //设置编码
<----------------------------------------------------------]
2.控制输出格式
[----------------------------------------------------------->
模板 log4j.appender.stdout.layout=org.apache.log4j[输出参数]
样例 log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
参数列表
[
- HTMLLayout (以HTML表格形式布局)
- PatternLayout (可以灵活地指定布局模式)
- SimpleLayout (包含日志信息的级别和信息字符串)
- TTCCLayout (包含日志产生的时间、线程、类别等等信息)
]
<----------------------------------------------------------]
[----------------------------------------------------------->
附 指定日志输出格式<如果输出形式是 PatternLayout 就需要定义>
列 log4j.appender.error.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %p [%t] %C.%M(%L) | %m%n
[
- #%m 输出代码中指定的消息
- #%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL
- #%r 输出自应用启动到输出该log信息耗费的毫秒数
- #%c 输出所属的类目,通常就是所在类的全名
- #%t 输出产生该日志事件的线程名
- #%n 输出一个回车换行符,Windows平台为“rn”,Unix平台为“n”
- #%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式
- #比如:%d{yyyy MMM dd HH:mm:ss,SSS} 输出类似:2002年10月18日 22:10:28,921
- #%l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。
- #[Log4JDemo]是log信息的开头,可以为任意字符,一般为项目简称。
- #log4j.appender.stdout.layout.ConversionPattern=[Log4JDemo] %p [%t] %C.%M(%L) | %m%n
- log4j.appender.stdout.layout.ConversionPattern=[Log4JDemo] %p [%t] %C.%M(%L) | %m%n
]
<----------------------------------------------------------]
4.其他定义
[----------------------------------------------------------->
- log4j.logger.com. abc<自定义包名> =DEBUG //指定com. abc包下的所有类的等级为DEBUG。
- 还有其他在百度百科 https://baike.baidu.com/item/log4j/480673#2
<----------------------------------------------------------]
5.可引用模板
[----------------------------------------------------------->
XML中定义
- #定义输出等级 = info,和输出目的地=stdout
- log4j.rootCategory=INFO, stdout
- #输出到控制台
- log4j.appender.stdout=org.apache.log4j.ConsoleAppender
- log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
- log4j.appender.stdout.layout.ConversionPattern=[QC] %p [%t] %C.%M(%L) | %m%n
Java代码
- import org.apache.log4j.Logger;
- public class Test {
- private static Logger logger=Logger.getLogger(Test.class);
- public static void main(String[] args) {
- logger.info("--");}
- }
<----------------------------------------------------------]