JavaEE SSH框架整合(四) 日志处理Spring结合 log4j、slf4j [转]
2015-12-12 11:19
766 查看
1. 加入log4j和slf4j的jar包
2. web.xml:
[html] view plaincopyprint?
<context-param>
<!--log4j配置地址 -->
<param-name>log4jConfigLocation</param-name>
<!-- <param-value>/WEB-INF/classes/log4j.properties</param-value> -->
<param-value>classpath:log4j.properties</param-value>
</context-param>
<context-param>
<!-- log4j 配置扫描刷新间隔 可以不用 -->
<param-name>log4jRefreshInterval</param-name>
<param-value>10000</param-value>
</context-param>
<!-- spring里的log4j配置监听器 -->
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
3. src/log4j.properties:
[plain] view plaincopyprint?
### set log levels ###
log4j.rootLogger = debug,stdout,D,E
### 输出到控制台 ###
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.Threshold = INFO
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = %d{ABSOLUTE} %5p %c{1}:%L - %m%n
log4j.appender.stdout.Encoding=UTF-8
### 输出到日志文件 ###
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = ${ssh}WEB-INF/logs/debug.log
log4j.appender.D.file.MaxFileSize=500KB
log4j.appender.D.Append = true
##输出DEBUG级别以上的日志
log4j.appender.D.Threshold = DEBUG
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
log4j.appender.D.Encoding=UTF-8
### 保存异常信息到单独文件 ###
log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
## 异常日志文件名
log4j.appender.E.File = ${ssh}WEB-INF/logs/error.log
log4j.appender.E.file.MaxFileSize=500KB
log4j.appender.E.Append = true
## 只输出ERROR级别以上的日志!!!
log4j.appender.E.Threshold = ERROR
log4j.appender.E.layout = org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
log4j.appender.E.Encoding=UTF-8
配置info级输出到控制台,debug和error 都输出到对应文件中。
4. 使用log对象
[java] view plaincopyprint?
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.stone.action.DefaultAction;
public class LogUtil {
//使用slf4j创建日志对象,好处时,以后更换为其它日志工具时,只要修改配置文件,不用修改代码
private static Logger logger = LoggerFactory.getLogger(LogUtil.class);
//使用log4j创建日志对象
// private org.apache.log4j.Logger logger = org.apache.log4j.Logger.getLogger(getClass());
public static void error(String message) {
logger.error(message);
}
public static void debug(String message) {
logger.debug(message);
}
public static void info(String message) {
logger.info(message);
// org.apache.log4j.Logger.getLogger(LogUtil.class).info(message);
}
}
2. web.xml:
[html] view plaincopyprint?
<context-param>
<!--log4j配置地址 -->
<param-name>log4jConfigLocation</param-name>
<!-- <param-value>/WEB-INF/classes/log4j.properties</param-value> -->
<param-value>classpath:log4j.properties</param-value>
</context-param>
<context-param>
<!-- log4j 配置扫描刷新间隔 可以不用 -->
<param-name>log4jRefreshInterval</param-name>
<param-value>10000</param-value>
</context-param>
<!-- spring里的log4j配置监听器 -->
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
3. src/log4j.properties:
[plain] view plaincopyprint?
### set log levels ###
log4j.rootLogger = debug,stdout,D,E
### 输出到控制台 ###
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.Threshold = INFO
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = %d{ABSOLUTE} %5p %c{1}:%L - %m%n
log4j.appender.stdout.Encoding=UTF-8
### 输出到日志文件 ###
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = ${ssh}WEB-INF/logs/debug.log
log4j.appender.D.file.MaxFileSize=500KB
log4j.appender.D.Append = true
##输出DEBUG级别以上的日志
log4j.appender.D.Threshold = DEBUG
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
log4j.appender.D.Encoding=UTF-8
### 保存异常信息到单独文件 ###
log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
## 异常日志文件名
log4j.appender.E.File = ${ssh}WEB-INF/logs/error.log
log4j.appender.E.file.MaxFileSize=500KB
log4j.appender.E.Append = true
## 只输出ERROR级别以上的日志!!!
log4j.appender.E.Threshold = ERROR
log4j.appender.E.layout = org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
log4j.appender.E.Encoding=UTF-8
配置info级输出到控制台,debug和error 都输出到对应文件中。
4. 使用log对象
[java] view plaincopyprint?
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.stone.action.DefaultAction;
public class LogUtil {
//使用slf4j创建日志对象,好处时,以后更换为其它日志工具时,只要修改配置文件,不用修改代码
private static Logger logger = LoggerFactory.getLogger(LogUtil.class);
//使用log4j创建日志对象
// private org.apache.log4j.Logger logger = org.apache.log4j.Logger.getLogger(getClass());
public static void error(String message) {
logger.error(message);
}
public static void debug(String message) {
logger.debug(message);
}
public static void info(String message) {
logger.info(message);
// org.apache.log4j.Logger.getLogger(LogUtil.class).info(message);
}
}
相关文章推荐
- Java中对象的类型判断
- java中的this与super的区别
- springmvc 接收json对象的两种方式
- K-Means 算法(Java)
- mac eclipse快捷键整理
- 二叉树非递归遍历实现-java版本
- 教你如何精通Struts:Tiles框架
- Java自增问题:x=x++
- Java中byte与16进制字符串的互相转换
- eclipse自动生成类图
- java中的类总结
- eclipse常用设置(字体设置、jdk版本更改、编码更改)
- java初始化技巧
- JDK错误
- JDK错误
- TCL脚本在Eclipse开发的环境搭建(图解)。
- 【菜鸟学Java】5:“徒手”创建一个Web应用
- java语言基础概述
- 枚举类型的单例模式(java)五种
- SpringMVC+Spring+Mybatis+Maven整合