SpringBoot日志使用

Spring Boot的starter中默认使用的日志框架是logback;平时我们使用日志时的代码是这样的

/**
 * Created by Sanisy on 2018/2/16.
 */
@Controller
@RequestMapping(value = "/chat")
public class ChatController {

    private static final Logger logger = LoggerFactory.getLogger(ChatController.class);

    @RequestMapping(value = "/sayHello")
    @ResponseBody
    public String sayHello(){
        logger.info("this is logging test, {}", "Spring Boot");
        return "Hello, welcome to here!";
    }
}

我们每一个类都需要初始化一个Logger,写多了会觉得很烦,太浪费时间了;不过庆幸的是这里有一个第三方插件,帮我们做这些事,这个插件就是lomboklombok可以帮我们省很多事情,比如说我们的JavaBeangetset方法,使用lombok@Data注解即可;上面的logger只需要使用lombok@Slf4j注解即可,给我们的开发工作带来了很大的方便。
lombok插件的Maven配置:


    org.projectlombok
    lombok
    1.16.8
    provided

添加lombok之后我们的日志使用方式是这样的

/**
 * Created by Sanisy on 2018/2/16.
 */
@Slf4j
@Controller
@RequestMapping(value = "/chat")
public class ChatController {

    @RequestMapping(value = "/sayHello")
    @ResponseBody
    public String sayHello(){
        log.info("this is logging test, {}", "Spring Boot");
        return "Hello, welcome to here!";
    }
}

日志的需求往往需要按天来输出、并且为了便于查找,我们又将一天的日志按照一定的大小进行切割成多个子日志文件。Spring Boot自带的日志并没有默认实现这种功能,我们需要自己来设定。由于我们使用的是logback日志框架,所以我们需要创建一个日志配置文件来覆盖Spring Boot的默认的日志配置。Spring Boot的默认的配置文件格式是xxx-spring.xml,所以我们在srcresources目录下创建logback-spring.xml文件即可。文件的配置如下:




    logback-demo
    
    
    
    
        
        
            
                %d{HH:mm:ss.SSS} %contextName [%thread] %-5level %logger - %msg%n
            
        
        
    

    
        
        
            
            ERROR
            
            DENY
            
            ACCEPT
        
        
        ${log.dir}/iag-info.log
        
        
            
            ${log.dir}/iag-info.%d{yyyy-MM-dd}-%i.log
            
            90
            
            
            5KB
        
        
        
            UTF-8
            %d [%thread] %-5level %logger %line - %msg%n
        
    

    
        
        
            ERROR
        
        
        ${log.dir}/iag-error.log
        
        
            
            ${log.dir}/iag-error.%d{yyyy-MM-dd}-%i.log
            
            90
            
            
            
            5KB
        
        
        
            UTF-8
            %d [%thread] %-5level %logger{36} %line - %msg%n
        
    

    
    
        
        
        
        
    

lombok可以通过property标签来定义自己的变量,然后可以在配置文件中通过${变量名}的方式来使用。我们需要根据日期和大小进行日志切割,所以需要用到的滚动策略为SizeAndTimeBasedRollingPolicy,这个策略需要设置FileNamePatternmaxFileSizeFileNamePattern设置的是切割生成的文件的名称,maxFileSize设置的是当日志文件的大小达到指定大小时会对日志文件进行切割。
需要注意的是
%d [%thread] %-5level %logger{36} %line - %msg%n,这里的{36}表示的是Logger的类信息超过36个字节时,会对信息进行压缩显示。

压缩策略.png

你可能感兴趣的:(SpringBoot日志使用)