spring集成 log4j + slf4j
以maven web项目为例,
首先、在pom文件引入相关依赖,如下(spring官网文档有介绍):
<dependencies>
<!-- spring 相关 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>4.0..RELEASE</version>
<exclusions>
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>1.5.</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.5.</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.5.</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.</version>
</dependency>
</dependencies>
spring 内部默认使用的日志框架是: commons-logging(需排除该依赖), 引入“jcl-over-slf4j”依赖,使spring对common-logging的调用转为对slf4j的调用,
需要注意的是: 排除commons-logging依赖后,若不配置其他替代依赖(jcl-over-slf4j),容器初始化时会报错:java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
接着编写log4j配置文件log4j.xml,位于classpath路径下(src/main/resources)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration PUBLIC "-//APACHE//DTD LOG4J 1.2//EN" "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> <!-- Appenders -->
<appender name="FILE" class="org.apache.log4j.RollingFileAppender">
<param name="file" value="${project.home}/logs/dispatchmanage.log" />
<param name="append" value="true" />
<param name="maxFileSize" value="100MB" />
<param name="maxBackupIndex" value="" />
<layout class="org.apache.log4j.PatternLayout">
<param name='ConversionPattern' value='[%-5p][%d{yyyy/MM/dd HH:mm:ss}][%l][%m]%n' />
</layout>
</appender> <appender name="Console" class="org.apache.log4j.ConsoleAppender">
<param name="Target" value="System.out" />
<layout class="org.apache.log4j.PatternLayout">
<param name='ConversionPattern' value='[%-5p][%d{yyyy/MM/dd HH:mm:ss}][%l][%m]%n' />
</layout>
</appender> <!-- Application Loggers -->
<logger name="com.hgs">
<level value="debug" />
<appender-ref ref="FILE" />
</logger> <!-- 3rdparty Loggers -->
<logger name="org.springframework.core">
<level value="info" />
</logger> <logger name="org.springframework.beans">
<level value="info" />
</logger> <logger name="org.springframework.context">
<level value="info" />
</logger> <logger name="org.springframework.web">
<level value="info" />
</logger> <!-- SQL Loggers -->
<logger name="java.sql.Statement" additivity="true">
<level value="debug" />
</logger>
<logger name="java.sql.PreparedStatement" additivity="true">
<level value="debug" />
</logger> <logger name="com.ibatis">
<level value="info" />
</logger>
<logger name="com.ibatis.common.jdbc">
<level value="info" />
</logger>
<logger name="com.ibatis.sqlmap.engine.impl">
<level value="info" />
</logger>
<logger name="java.sql.Connection">
<level value="info" />
</logger>
<!-- Root Logger -->
<root>
<level value="debug" />
<appender-ref ref="Console" />
</root> </log4j:configuration>
到此所有的配置工作就完成了,紧接着就可以在实际代码中编程使用了,如下:
package com.yinz.tool.quartz.test; import java.util.Date; import org.quartz.Job;
import org.quartz.JobDataMap;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory; /**
*
* @description:调度任务要执行的具体操作,
* 该类必须要有一个无参构造器
* @author yinz
* 2016-7-7
*/
public class SimpleJob implements Job { private Logger logger = LoggerFactory.getLogger(SimpleJob.class); public void execute(JobExecutionContext context) throws JobExecutionException {
//JobDataMap dataMap = context.getJobDetail().getJobDataMap(); //JobDetail中的JobDataMap
JobDataMap dataMap = context.getMergedJobDataMap(); //trigger和JobDetail的中的JobDataMap的合并
String jobMsg = dataMap.getString("jobMsg");
String triggerMsg = dataMap.getString("triggerMsg");
logger.info(new Date() + " : < " + jobMsg + " >, < " + triggerMsg + " >" );
} }
代码中可以看出,我们是面向slf4j 的api编程,这样就可以方便实现在不同的日志框架间切换而不需修改代码。
spring集成 log4j + slf4j的更多相关文章
- Spring集成log4j日志管理
原文地址:http://blog.csdn.net/naruto1021/article/details/7969535 在使用Spring框架的时候,我们可以很方便的配置log4j来进行日志管理. ...
- Spring结合log4j(slf4j)
maven依赖 <!-- slf4j (级联:log4j/slf4j-api) --> <dependency> <groupId> ...
- spring 集成 log4j 配置
在web.xml中增加如下代码: <context-param> <param-name>log4jConfigLocation</param-name> < ...
- spring学习总结(mybatis,事务,测试JUnit4,日志log4j&slf4j,定时任务quartz&spring-task,jetty,Restful-jersey等)
在实战中学习,模仿博客园的部分功能.包括用户的注册,登陆:发表新随笔,阅读随笔:发表评论,以及定时任务等.Entity层设计3张表,分别为user表(用户),essay表(随笔)以及comment表( ...
- Spring MVC集成Log4j
以下示例显示如何使用Spring Web MVC框架集成LOG4J.首先使用Eclipse IDE,并按照以下步骤使用Spring Web Framework开发基于动态表单的Web应用程序: 创建一 ...
- Spring Boot 整合 slf4j+log4j 实现日志管理
一:首先新建一个jar项目,如下图: 二:添加log4j的依赖,如下pom.xml文件: <project xmlns="http://maven.apache.org/POM/4.0 ...
- elasticsearch spring 集成
elasticsearch spring 集成 项目清单 elasticsearch服务下载包括其中插件和分词 http://download.csdn.net/detail/u0142011 ...
- 消息中间件系列四:RabbitMQ与Spring集成
一.RabbitMQ与Spring集成 准备工作: 分别新建名为RabbitMQSpringProducer和RabbitMQSpringConsumer的maven web工程 在pom.xml文 ...
- Spring 集成rabbiatmq
pom 文件 <dependencies> <dependency> <groupId>com.rabbitmq</groupId> <artif ...
随机推荐
- 将数组转换成List
采用比较好的方法Collections.addAll(arrayList, arr); arrayList是一个List arr是一个数组 并且要求arrayList与arr的类型是相同的 或 ...
- poj3519
凡是差分约束系统的题目都是转化为d[j]-d[i]<=w[i,j]的形式然后我们建立边i-->j 边权为w[i,j]对于这道题,要求d[n]-d[1]尽可能的大设d[i]为相对差,d[1] ...
- 数据结构(并查集||树链剖分):HEOI 2016 tree
[注意事项] 为了体现增强版,题目限制和数据范围有所增强: 时间限制:1.5s 内存限制:128MB 对于15% 的数据,1<=N,Q<=1000. 对于35% 的数据,1<=N,Q ...
- leetcode排列,求第k个排列
stl 中的下一个排列在写一遍忘了 写个1个多小时,使用递归写的,错误就在我使用一个list保存当前剩下的数,然后利用k/(n-1)!的阶乘就是删除的数字,但进过观察, 比如 list={1,2,3} ...
- poj 3678 Katu Puzzle(Two Sat)
题目链接:http://poj.org/problem?id=3678 代码: #include<cstdio> #include<cstring> #include<i ...
- 爬虫技术浅析 | z7y Blog
爬虫技术浅析 | z7y Blog 爬虫技术浅析
- 4 hbase表结构 + hbase集群架构及表存储机制
本博文的主要内容有 .hbase读取数据过程 .HBase表结构 .附带PPT http://hbase.apache.org/ 读写的时候,就需要用hbase了,换句话说,就是读写的时候. ...
- 【Lucene3.6.2入门系列】第14节_SolrJ操作索引和搜索文档以及整合中文分词
package com.jadyer.solrj; import java.util.ArrayList; import java.util.List; import org.apache.solr. ...
- 在world2013中插入GB_2312
文字添加方法: 1.下载字体并解压 2.开始中打开控制面板 3.在控制面板中打开字体文件夹 4.把下载的字体复制到此文件下 5.文字添加完成.
- Jquery 进度条集锦
http://sc.chinaz.com/tag_jiaoben/JinDuTiao.html?qq-pf-to=pcqq.group