log4j相关设置说明
###############################################
一下的配置文件都是以log4j.开头
一种就是log4j.properties | log4j.xml
最最重要就是第一个log4j.rootLogger,指定log4j日志的输出界别(目的地)
log4j.rootLogger=INFO,stdout,file意思为:
日志可以输INFO级别以上的数据,将日志输出到stdout标准控制输出(控制台),输出到file
常见的日志输出级别:DEBUG(调试) < INFO(信息) < WARN(警告) < ERROR(错误) < FATAL(致命错误)
日志输出的顺序:和日志输出级别一致,即配置为一个级别,输出的内容只能是该级别及其以上级别的信息
INFO(输出的包括 INFO WARN ERROR FATAL)
ERROR(ERROR FATAL)
所以,一般情况下:在开发,测试环境中,日志的级别为DEBUG;在生产环境中,日志级别为INFO
输出目的地:
日志输出的各种各样的目的地,都是通过Appender来进行实现追加的
我们在appender中看到的PatternLayout的格式如下:
#%m 输出代码中指定的消息
#%n 输出一个回车换行符,Windows平台为“\r\n”,Unix平台为“\n”
#%p 输出优先级,即日志级别:DEBUG,INFO,WARN,ERROR,FATAL
#%r 输出自应用启动到输出该log信息耗费的毫秒数
#%c 输出所属的类目,通常就是所在类的全名
#%t 输出产生该日志事件的线程名
#%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss , SSS},输出类似:2002年10月18日 22 : 10 : 28 , 921
#%l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java: 10 ) log4j配置详解 - stone - stonexmx 的博客
常见的Appender
ConsoleAppender
FileAppender
###############################################
##自定义日志的输出级别
log4j.rootLogger=INFO, stdout
##自定义日志
log4j.logger.access=INFO, access
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%t] [%c] [%p] - %m%n
### 输出到日志文件 ###
log4j.appender.R = org.apache.log4j.DailyRollingFileAppender
log4j.appender.R.File = logs/bigscreen.log
log4j.appender.R.Append = true
log4j.appender.R.Threshold = DEBUG
log4j.appender.R.DatePattern = '.'yyyy-MM-dd
log4j.appender.R.layout = org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss} - %m%n
### 业务日志###
log4j.appender.access = org.apache.log4j.DailyRollingFileAppender
log4j.appender.access.File = logs/bigscreen.access.log
log4j.appender.access.Append = true
log4j.appender.access.Threshold = INFO
log4j.appender.access.layout = org.apache.log4j.PatternLayout
log4j.appender.access.layout.ConversionPattern = %m%n