lazzyRabbit hello

记录一下log4j的配置内容

#1.配置根Logger
#log4j.rootLogger = [ level ] , appenderName1, appenderName2, …
#level :设定日志记录的最低级别,可设的值有OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者自定义的级别,
#       通过在这里设定级别,您可以控制应用程序中相应级别的日志信息的开关,比如在这里设定了INFO级别,则应用程序中所有DEBUG级别的日志信息将不会被打印出来。
#appenderName:就是指定日志信息要输出到哪里。可以同时指定多个输出目的地,用逗号隔开。
log4j.rootLogger=warn,stdout,file
#配置日志信息输出目的地(appender)
#log4j.appender.appenderName=classname
#className:可设值如下:
#(1)org.apache.log4j.ConsoleAppender(控制台)
#(2)org.apache.log4j.FileAppender(文件)
#(3)org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)
#(4)org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)
#(5)org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)a
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=%m%n


log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
#.File:指定log文件路径
log4j.appender.file.File=E://logs/root.log
#.Append:true表示消息增加到指定文件中,false则将消息覆盖指定的文件内容,默认值是true
log4j.appender.file.Append=true
#.Threshold:指定日志信息的最低输出级别,默认为DEBUG
log4j.appender.file.Threshold=INFO
#.DatePattern:指定滚动日志文件的时间
#1)'.'yyyy-MM:每月
#2)'.'yyyy-ww:每周
#3)'.'yyyy-MM-dd:每天
#4)'.'yyyy-MM-dd-a:每天两次
#5)'.'yyyy-MM-dd-HH:每小时
#6)'.'yyyy-MM-dd-HH-mm:每分钟
log4j.appender.file.DatePattern='.'yyyy-MM-dd
#配置日志信息的输出格式(Layout)可设值如下:
#(1)org.apache.log4j.HTMLLayout(以HTML表格形式布局)
#(2)org.apache.log4j.PatternLayout(可以灵活地指定布局模式)
#(3)org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串)
#(4)org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)
log4j.appender.file.layout=org.apache.log4j.PatternLayout
#设定以怎样的格式显示消息
log4j.appender.file.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%-5p] %m%n
#2.配置自定义log(com.mlxp包下的log会按mlxp配置)
log4j.logger.com.mlxp=DEBUG,mlxp
#自定义的日志默认是同时输出到log4j.rootLogger所配置的日志中的,additivity设为false可以只让它们输出到自己指定的日志中
log4j.additivity.com.mlxp=false
log4j.appender.mlxp=org.apache.log4j.DailyRollingFileAppender
log4j.appender.mlxp.File=E://logs/mlxp.log
log4j.appender.mlxp.Append=true
log4j.appender.mlxp.DatePattern='.'yyyy-MM-dd
log4j.appender.mlxp.layout=org.apache.log4j.PatternLayout
log4j.appender.mlxp.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%p] %m%n

#3.配置mybatis
log4j.logger.com.mlxp.dao=DEBUG,mybatis
#自定义的日志默认是同时输出到log4j.rootLogger所配置的日志中的,additivity设为false可以只让它们输出到自己指定的日志中
log4j.additivity.com.mlxp.dao=false
log4j.appender.mybatis=org.apache.log4j.DailyRollingFileAppender
log4j.appender.mybatis.File=E://logs/sql.log
log4j.appender.mybatis.Append=true
log4j.appender.mybatis.DatePattern='.'yyyy-MM-dd
log4j.appender.mybatis.layout=org.apache.log4j.PatternLayout
log4j.appender.mybatis.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%p] %m%n

日志信息格式中几个符号所代表的含义:

-X号:X信息输出时左对齐;

%p:输出日志信息优先级,即DEBUG,INFO,WARN,ERROR,FATAL,

%d:输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyyMMMddHH:mm:ss,SSS},输出类似:2002年10月18日22:10:28,921

%r:输出自应用启动到输出该log信息耗费的毫秒数

%c:输出日志信息所属的类目,通常就是所在类的全名

%t:输出产生该日志事件的线程名

%l:输出日志事件的发生位置,相当于%C.%M(%F:%L)的组合,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java:10)

%x:输出和当前线程相关联的NDC(嵌套诊断环境),尤其用到像javaservlets这样的多客户多线程的应用中。

%%:输出一个"%"字符

%F:输出日志消息产生时所在的文件名称

%L:输出代码中的行号

%m:输出代码中指定的消息,产生的日志具体信息

%n:输出一个回车换行符,Windows平台为"\r\n",Unix平台为"\n"输出日志信息换行

可以在%与模式字符之间加上修饰符来控制其最小宽度、最大宽度、和文本的对齐方式。如:

1)%20c:指定输出category的名称,最小的宽度是20,如果category的名称小于20的话,默认的情况下右对齐。

2)%-20c:指定输出category的名称,最小的宽度是20,如果category的名称小于20的话,"-"号指定左对齐。

3)%.30c:指定输出category的名称,最大的宽度是30,如果category的名称大于30的话,就会将左边多出的字符截掉,但小于30的话也不会有空格。

4)%20.30c:如果category的名称小于20就补空格,并且右对齐,如果其名称长于30字符,就从左边较远输出的字符截掉。

在与web项目整合时,需要在web.xml中配置以下内容

	<listener>
		<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
	</listener>
	<context-param>
		<param-name>log4jConfigLocation</param-name>
		<param-value>classpath:config/log4j.properties</param-value>
	</context-param>
	<!-- 设定刷新日志配置文件的时间间隔,这里设置为10s -->
	<context-param>
		<param-name>log4jRefreshInterval</param-name>
		<param-value>10000</param-value>
	</context-param><br>