SpringBoot系列(六)Logback日志配置

前言

Logback是SpringBoot内置的日志处理框架,你会发现spring-boot-starter其中包含了spring-boot-starter-logging,该依赖内容就是 Spring Boot 默认的日志框架 logback。而spring-boot-starter-web包含了spring-boot-starter;需要的可以自己去看下引入spring-boot-starter-web后的项目JAR依赖关系;

一、SpringBoot默认Logback配置

在前面的SpringBoot系列中,我并没有主动去配置过任何和日志打印的相关配置,但是控制台却打印了相关的启动日志;

这里写图片描述

  • 时间日期:精确到毫秒
  • 日志级别:ERROR, WARN, INFO, DEBUG or TRACE
  • 进程ID
  • 分隔符:— 标识实际日志的开始
  • 线程名:方括号括起来(可能会截断控制台输出)
  • Logger名:通常使用源代码的类名
  • 日志内容

我们没有配置任何其它配置,就可以看到来自logback root logger的输出信息。因为SpringBoot为Logback提供了默认的配置文件base.xml,base.xml文件里定义了默认的root输出级别为INFO

<?xml version="1.0" encoding="UTF-8"?>  
  
<!-- 
Base logback configuration provided for compatibility with Spring Boot 1.1 
-->  
  
<included>  
    <include resource="org/springframework/boot/logging/logback/defaults.xml" />  
    <property name="LOG_FILE" value="${LOG_FILE:-${LOG_PATH:-${LOG_TEMP:-${java.io.tmpdir:-/tmp}}/}spring.log}"/>  
    <include resource="org/springframework/boot/logging/logback/console-appender.xml" />  
    <include resource="org/springframework/boot/logging/logback/file-appender.xml" />  
    <root level="INFO">  
        <appender-ref ref="CONSOLE" />  
        <appender-ref ref="FILE" />  
    </root>  
</included>  

Spring Boot中默认配置ERROR、WARN和INFO级别的日志输出到控制台。
您还可以通过启动您的应用程序 --debug 标志来启用“调试”模式(开发的时候推荐开启),以下两种方式皆可:

在运行命令后加入–debug标志,如:$ java -jar springTest.jar --debug
在application.properties中配置debug=true,该属性置为true的时候,核心Logger(包含嵌入式容器、hibernate、spring)会输出更多内容,但是你自己应用的日志并不会输出为DEBUG级别。


二、使用SpringBoot的配置文件application.properties或application.yml实现简单的日志配置

默认情况下,Spring Boot将日志输出到控制台,不会写到日志文件。

使用Spring Boot喜欢在application.properties或application.yml配置,这样只能配置简单的场景,保存路径、日志格式等,复杂的场景(区分 info 和 error 的日志、每天产生一个日志文件等)满足不了,只能自定义配置,下面会演示。

为了方便测试,新建以下类测试日志打印:

测试Component

package com.jd.m.tg.log;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;

@Component
public class LogHelper {

    private static final Logger LOG= LoggerFactory.getLogger(LogHelper.class);

    public void helpLog(){
        LOG.debug("打印DEBUG级别");
        LOG.info("打印INFO级别");
        LOG.warn("打印WARN级别");
        LOG.error("打印ERROR级别");
    }

}

测试Controller:

package com.jd.m.tg.controller;

import com.jd.m.tg.log.LogHelper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
@RequestMapping("log")
public class TestLogController {

    private static final Logger LOG= LoggerFactory.getLogger(TestLogController.class);

    @Autowired
    private LogHelper logHelper;

    @ResponseBody
    @RequestMapping(value = "helpLog")
    public void testLog(){
        LOG.info("开始打印日志:INFO");
        logHelper.helpLog();
        LOG.info("结束打印日志INFO");
    }
}

级别控制

所有支持的日志记录系统都可以在Spring环境中设置记录级别(例如在application.properties中)
格式为:‘logging.level.* = LEVEL’

logging.level:日志级别控制前缀,*为包名或Logger名
LEVEL:选项TRACE, DEBUG, INFO, WARN, ERROR, FATAL, OFF

举例:

logging.level.com.jd.m.tg.controller.TestLogController=INFO:com.jd.m.tg.controller.TestLogController.class以ERROR级别输出

logging.level.root=INFO:root日志以INFO级别输出

附SpringBoot内置详细日志配置参数说明:

# LOGGING
//定义logback配置文件位置
logging.config= # Location of the logging configuration file. For instance `classpath:logback.xml` for Logback

//日志异常时的转换语
loggin
  • 5
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值