首页 > 代码库 > 日志slf4j+log4j配置问题

日志slf4j+log4j配置问题

简介
slf4j  相当于抽象类
log4j 相当于实现,当然还有其他的实现,如logback,jdk自带的logging等

 

 

 

具体配置maven 配置 pom.xml加入

<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.6.6</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.6.6</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>



log4j.xml配置
<?xml version="1.0"  encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration>

<!--若干个appender的定义-->
<!--org.apache.log4j.ConsoleAppender 输出到控制台-->
<appender name="myConsole" class="org.apache.log4j.ConsoleAppender">
<!--输出格式-->
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern"
value="http://www.mamicode.com/%-d{yyyy-MM-dd HH:mm:ss,SSS} [%c]-[%p] %m%n"/>
</layout>
</appender>

<!--org.apache.log4j.DailyRollingFileAppender 每天产生一个日志文件-->
<appender name="myFile" class="org.apache.log4j.DailyRollingFileAppender">
<param name="File" value="http://www.mamicode.com/output.log"/><!--文件位置-->
<param name="Append" value="http://www.mamicode.com/true"/><!--是否选择追加-->
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern"
value="http://www.mamicode.com/%-d{yyyy-MM-dd HH:mm:ss,SSS} [%c]-[%p] %m%n"/>
</layout>
</appender>

<!--org.apache.log4j.RollingFileAppender 滚动日志文件输出 文件大小到达一定尺寸时重新产生新的文件-->
<!--<appender name="myFile" class="org.apache.log4j.RollingFileAppender">
<param name="File" value="D:/output.log" />
<param name="Append" value="http://www.mamicode.com/true" />
<param name="MaxFileSize" value="http://www.mamicode.com/500KB"/>
<param name="MaxBackupIndex" value="http://www.mamicode.com/10" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="http://www.mamicode.com/%p (%c:%L)- %m%n" />
</layout>
</appender>-->

<!--将各个包中的类日志输出到不同的日志文件中
这样可以便于日志的分类。
可以通过这个设置,把业务逻辑的日志添加到数据库。起到过滤的作用
-->
<!--这段配置的就是说把包名为“com.zjut.a1”且优先级为debug的日志通过myFile这个appender来处理。
-->
<category name="com.xxx">
<priority value="http://www.mamicode.com/info"/>
<appender-ref ref="myConsole"/>
</category>


<!-- 根logger的设置-->
<root>
<!--优先级设置,假设设置为“info”,则无法输出debug级别的日志-->
<priority value="http://www.mamicode.com/info"/>
<!--<priority value="http://www.mamicode.com/info"/>-->
<!--<priority value="http://www.mamicode.com/warn"/>-->
<!--<priority value="http://www.mamicode.com/error"/>-->
<!--<priority value="http://www.mamicode.com/fatal"/>-->

<!--添加刚才设置的appender-->
<appender-ref ref="myConsole"/>
<appender-ref ref="myFile"/>
</root>
</log4j:configuration>



web.xml加入

<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>/WEB-INF/classes/log4j.xml</param-value>
</context-param>
<listener>
<listener-class>
org.springframework.web.util.Log4jConfigListener
</listener-class>
</listener>



测试代码:

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.annotation.Resource;



import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;


@Controller
@RequestMapping("test")
public class TestController {

// // 类名.class
private final static Logger logger = LoggerFactory.getLogger(TestController.class);
@Resource(name = "testServiceImpl")
private TestService testservice;

@RequestMapping("/view.do")
public ModelAndView getAllTest() {
List<Test> list = testservice.getAllTest();
Map map = new HashMap();
map.put("testlist", list);
logger.info("******get list from get ALLTest-----------------------------------");
return new ModelAndView("index", map);
}

}

最后一步,copy maven jar到工程lib里面

 

日志slf4j+log4j配置问题