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
(•̀ᴗ•́)و ̑̑