1、log4j.properties ###################################### # log4j配置相关说明 ###################################### #%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL #%r 输出自应用启动到输出该log信息耗费的毫
######################################
# log4j配置相关说明
######################################
#%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL
#%r 输出自应用启动到输出该log信息耗费的毫秒数
#%c 输出所属的类目,通常就是所在类的全名
#%t 输出产生该日志事件的线程名
#%m 输出代码中指定的信息
#%n 输出一个回车换行符,Windows平台为“\r\n”,Unix平台为“\n”
#%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyyy MM dd HH:mm:ss,SSS},输出类似: 2002年10月18日 22:10:28,921
#%l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java:10)
#log4j提供4种布局:
#org.apache.log4j.HTMLLayout(以HTML表格形式布局)
#org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
#org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
#org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息
#log4j中有五级logger 输出级别:
#FATAL 0
#ERROR 3
#WARN 4
#INFO 6
#DEBUG 7
######################################
# log4j相关配置
######################################
#日志输出级别
log4j.rootLogger=INFO,stdout,other
#设置stdout的日志输出控制台
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
#输出日志到控制台的方式,默认为System.out
log4j.appender.stdout.Target = System.out
#设置使用灵活布局
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
#灵活定义输出格式
log4j.appender.stdout.layout.ConversionPattern=[%p][%d{yyyy-MM-dd HH\:mm\:ss}] %l %m %n
#设置other的日志输出控制台
log4j.appender.other=org.apache.log4j.RollingFileAppender
#设置other的输出日志
log4j.appender.other.File=${webapp.root}/WEB-INF/logs/log.log
#设置other的日志最大限制
log4j.appender.other.MaxFileSize=1024KB
#最多只保存20个备份文件
log4j.appender.other.MaxBackupIndex=1000
#输出INFO级别以上的日志,需要更详细的使用DEBUG,源码中很多DEBUG的信息
og4j.appender.other.Threshold=INFO
#设置使用灵活布局
log4j.appender.other.layout=org.apache.log4j.PatternLayout
#灵活定义输出格式
log4j.appender.other.layout.ConversionPattern=[%p][%d{yyyy-MM-dd HH\:mm\:ss}] %l %t %m %n
################################################
# hibernate相关配置(如果有,也能换成其他的)
################################################
#输出hibernate调试过程中的错误日志
log4j.logger.org.hibernate=other
#输出HQL查询调试日志
log4j.logger.org.hibernate.hql.ast.AST=other
#输出SQL语句调试日志
log4j.logger.org.hibernate.SQL=other
#输出 JDBC参数查询的日志
log4j.logger.org.hibernate.type=other
#输出缓存日志
log4j.logger.org.hibernate.cache=other
#输出事务日志
log4j.logger.org.hibernate.transaction=other
#输出获取JDBC资源日志
log4j.logger.org.hibernate.jdbc=other
2、web.xml
3、不使用web.xml,使用Javaconfig方式log4jConfigLocation /WEB-INF/log4j.properties log4jRefreshInterval 1800000 org.springframework.web.util.Log4jConfigListener
package com.amiu.spring.config;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;
import org.springframework.web.util.Log4jConfigListener;
public class WebInitializer extends AbstractAnnotationConfigDispatcherServletInitializer{
/**
* 这个方法tomcat启动就会调用,可以代替web.xml注册filter,listener,servlet等
*/
@Override
public void onStartup(ServletContext container) throws ServletException {
//config log4j
container.setInitParameter("log4jConfigLocation", "/WEB-INF/log4j.properties");
container.addListener(Log4jConfigListener.class);
super.onStartup(container);
}
@Override
protected Class
[] getRootConfigClasses() {
// TODO Auto-generated method stub
return null;
}
@Override
protected Class
[] getServletConfigClasses() {
// TODO Auto-generated method stub
return null;
}
@Override
protected String[] getServletMappings() {
// TODO Auto-generated method stub
return new String[]{"/"};
}
}
4、maven导包
-----log4j1.2.16 -----如果需要使用slf4j log4j log4j${log4j.version} 1.7.12 org.slf4j slf4j-api${slf4j.version} org.slf4j jcl-over-slf4j${slf4j.version} org.slf4j slf4j-log4j12${slf4j.version}
