J2EE-Log4j配置说明
配置根Logger,语法为
log4j.rootLogger=[level],appenderName,appenderName2,…
level级别种类
- ALL
- ERROR:严重错误,主要是程序错误
- WARN:一般警告,比如session丢失
- INFO:一般显示信息,比如登录登出
- DEBUG:程序的调试信息
配置日志信息输出目的地
log4j.appender.appenderName=fully.qualified.name.of.appender.class
- org.apache.log4j.ConsoleAppender:控制台
- Threshold=DEBUG:指定日志信息的输出最低层次
- ImmediateFlush=TRUE:默认值是true,所有的消息都会被立即输出
- Target=System.err:默认值是System.out,输出到控制台(err为红色,out为黑色)
- org.apache.log4j.FileAppender:文件
- Threshold=INFO:指定日志信息的输出最低层次
- ImmediateFlush=TRUE:默认值是true,所有的消息都会被立即输出
- File=Path/to/log/file:指定消息输出到“Path/to/log/file”文件
- Append=FALSE:默认值是true,将消息追加到指定文件中,false指将消息覆盖指定的文件内容
- Encoding=UTF-8:可以指定文件的编码格式
- org.apache.log4j.DailyRollingFileAppender:每天产生一个日志文件
- Threshold=WARN:指定日志消息的输出最低层次
- ImmediateFlush=TRUE:默认值是true,所有的消息都会被立即输出
- File=Path/to/log/file:指定消息输出到“Path/to/log/file”文件
- Append=FALSE:默认值是true,将消息追加到指定文件中,false指将消息覆盖指定的文件内容
- DatePattern=’.’yyyy-ww:每周滚动一次文件,即每周产生一个新的文件,还可以使用以下参数:
- ‘.’yyyy-MM:每月
- ‘.’yyyy-ww:每周
- ‘.’yyyy-MM-dd:每天
- ‘.’yyyy-MM-dd-a:每天两次
- ‘.’yyyy-MM-dd-HH:每小时
- ‘.’yyyy-MM-dd-HH-mm:每分钟
- Encoding=UTF-8:可以指定文件的编码格式
- org.apache.log4j.RollingFileAppender:文件大小到达指定大小的时候产生一个新文件
- Threshold=ERROR:指定日志消息的输出最低层次
- ImmediateFlush=TRUE:默认值是true,所有的消息都会被立即输出
- File=Path/to/log/file:指定消息输出到“Path/to/log/file”文件
- Append=FALSE:默认值是true,将消息追加到指定文件中,false指将消息覆盖指定的文件内容
- MaxFileSize=100KB:后缀可以是KB,MB,GB。在日志文件到达该大小时,将会自动滚动新增一个文件。如example.log.1
- MaxBackupIndex=2:指定可以产生的滚动文件的最大数
- Encoding=UTF-8:可以指定文件的编码格式
- org.apache.log4j.WriterAppender:将日志信息以流格式发送到任意指定的地方
- org.apache.log4j.ConsoleAppender:控制台
配置日志信息的格式
log4j.appender.appenderName.layout=fully.qualified.name.of.layout.class
- org.apache.log4j.HTMLLayout:以HTML表格形式布局
- LocationInfo=TRUE:默认值是false,输出java文件名称和行号
- Title=XXX Log Message:默认值是Log4jLog Message
- org.apache.log4j.PatternLayout:可以灵活地指定布局模式
- ConversionPattern=%m%n:格式化指定的恶消息
- %m:输出代码中指定的消息
- %p:输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL
- %r:输出自应用启动到输出该log信息耗费的毫秒数
- %c:输出所属的类目,通常就是所在类的全名,包括包名,如:com.gaussli.helloworld.HelloWorld
- %t:输出产生该日志事件的线程名
- %n:输出一个回车换行符,Windows平台为“\r\n”,Unix平台为“\n”
- %d:输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,如:%d{yyyy年MM月dd日 HH:mm:ss,SSS},输出为:2017年07月26日 15:22:34,145
- %l:输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数,如:”Helloworld.main(HelloWorld.java:10)”
- %F:输出日志消息产生时所在文件名称,不包括包名,如:HelloWorld.java
- %L:输出代码中的行号
- %x:输出和当前线程相关联的NDC(嵌套诊断环境),像java servlets多客户多线程的应用中
- %%:输出一个“%”字符
- 可以在%与模式字符之间加上修饰符来控制其最小宽度、最大宽度、和文本的对齐方式。如:
- %5c:输出类目全名,最小宽度是5,默认的情况下右对齐
- %-5c:输出类目全名,最小宽度是5,“-”指定左对齐
- %.5c:输出类目全名,最大宽度是5,将左边多出的字符截掉
- %20.30c:输出类目全名,<20补空格,并右对齐;>30将左边多出的字符截掉
- ConversionPattern=%m%n:格式化指定的恶消息
- org.apache.log4j.SimpleLayout:包含日志信息的级别和信息字符串
- org.apache.log4j.TTCCLayout:包含日志产生的时间、线程、类别等等信息
- org.apache.log4j.xml.XMLLayout:以XML形式布局
- org.apache.log4j.HTMLLayout:以HTML表格形式布局
指定特定包的输出特定的级别
log4j.logger.org.springframework=DEBUG
(•̀ᴗ•́)و ̑̑