log4j是基于架构配置的 那么log4j.properties则需要在web.xml里面进行加载配置:
web.xml配置内容:
<!-- 配置log4j输出日志监听器 -->
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>classpath:log4j.properties</param-value>
</context-param>
<!-- 60s 检测日志配置 文件变化 -->
<context-param>
<param-name>log4jRefreshInterval</param-name>
<param-value>60000</param-value>
</context-param>
<!-- 配置Log4j监听器 -->
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
log4j.properties的配置内容为(这个配置比较重要 它直接影响你在程序类里面的打印及日志文件的输入):
### 日志级别 ###
log4j.rootLogger=DEBUG,INFO
### 程序打印 我这里是关闭的 已经可以输出到日志文件里 所以打印的我关闭了的 ###
#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 = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n
log4j.logger.freemarker=FATAL
### 日志文件的输入 ###
log4j.appender.INFO = org.apache.log4j.DailyRollingFileAppender
### 必须是绝对路径,相对路径我编写了下 怎么都输入不进去###
log4j.appender.INFO.File =F:/eclipse_eexm/Mybatis/src/logs/ssm.log
log4j.appender.INFO.Encoding=utf-8
log4j.appender.INFO.Append = true
log4j.appender.INFO.Threshold = INFO
log4j.appender.INFO.layout = org.apache.log4j.PatternLayout
log4j.appender.INFO.layout.ConversionPattern =[%-5p] %d{yyyy-MM-dd HH\:mm\:ss} %C{8}@(%F\:%L)\:%m%n
# Control logging for other open source packages
# Changing the log level to DEBUG when debug
log4j.logger.org.springframework=WARN
# Changing the log level to DEBUG will display SQL Hibernate generated
#log4j.logger.org.hibernate=DEBUG
#log4j.logger.org.hibernate.SQL=DEBUG
#log4j.logger.org.hibernate.cache=DEBUG
#log4j.logger.net.sf.ehcache=ERROR
log4j.logger.com.xeg.service=DEBUG
说明:
log4j.appender.CONSOLE.layout.ConversionPattern
%m 输出代码中指定的消息
%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL
%r 输出自应用启动到输出该log信息耗费的毫秒数
%c 输出所属的类目,通常就是所在类的全名
%t 输出产生该日志事件的线程名
%n 输出一个回车换行符,Windows平台为“/r/n”,Unix平台为“/n”
%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss ,SSS},输出类似:2002年10月18日 22 : 10 : 28 , 921
%l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。举例:Mylog4.main(MyLog4.java: 10 )
Logger logger = Logger.getLogger(该类.Class);
logger.info("select student ok");
logger.debug("ok");
这样编码就可以啦