spring mvc日志:slf4j+logback

commons与slf4j

commons-logging和slf4j都是日志门面库, 提供统一日志接口, 再由实际的日志框架(如log4j, logback, jdk-logging)实现. 不同的是, commons-logging在程序运行时自动查询实际的日志库, 而log4j是在编译阶段静态绑定实际日志库, 并且有占位符绑定功能, 因此log4j的执行效率更高, 目前使用较多.

logback与log4j

logback和log4j由同一个创始人设计. logback-classic是log4j的一个改良版本. logback当前分成三个模块 : logback-core, logback- classic和logback-access. logback-core是其它两个模块的基础模块. 此外logback-classic完整实现slf4j api, 可以很方便地更换成其它日志系统如log4j或JDK14 Logging. logback-access访问模块与Servlet容器集成提供通过Http来访问日志的功能.

logback的优势包括:
  • 实现更快, 性能更好
  • 测试全面, 文档丰富
  • 自然地实现slf4j api
  • 能自动重载配置文件

spring使用slf4j+logback

spring默认使用commons-logging, 首先需要排除commons-logging. 需要的jar包如下:

  • slf4j-api : slf4j接口库, 基础组件
  • jcl-over-slf4j : commons-logging到slf4j的桥接包
  • logback-core : logback基础组件
  • logback-classic : 实现slf4j接口
        
        
            org.springframework
            spring-webmvc
            ${spring.version}
            
            
                
                    commons-logging
                    commons-logging
                
            
        

        
        
            org.slf4j
            jcl-over-slf4j
            ${slf4j.version}
        
        
        
        
            ch.qos.logback
            logback-classic
            ${logback.version}
        

logback.xml

在classpath目录新建logback.xml, logback配置与log4j基本相同.



    
        UTF-8
        
            
            %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
        
    

    
        
    

代码用法

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class UserService {
    private static final Logger logger = 
        LoggerFactory.getLogger(UserService.class);

    public void getUser() {
        logger.info("user {} is {} years old", "Aray", 13);
    }
}

你可能感兴趣的:(spring mvc日志:slf4j+logback)