SpringBoot日志

SpringBoot默认使用SLF4J作为日志门面(相当于接口),Logback作为日志实现(实现可切换)

一.默认输出格式

1.日期时间

2.日志级别(从上至下级别越来越高):

TRACE:追踪框架流程日志,一般不使用

DEBUG:调试日志

INFO:关键、感兴趣日志

WARN:警告日志

ERROR:错误日志

3.进程ID

4.---:消息分隔符

5.线程名:用[]包裹

6.Logger名:产生这条日志的类名

7.消息:具体日志内容

二.使用

@Service
public class UserService{//创建UserService类对应的Logger(SLF4J包下)
    private Logger logger= LoggerFactory.getLogger(getClass());
    public void useLogger() {//使用                
        Loggerlogger.trace("TRACE");
        logger.debug("DEBUG");
        logger.info("INFO {} {}", "参1", "参2");
        logger.warn("WARN");
        logger.error("ERROR");
}

导入lombok后使用@Slf4j注解,会自动创建变量名为log的Logger

只会输出INFO及以上的日志级别,因为SpringBoot默认日志级别为INFO

三.配置

通过yml文件配置日志(以logging开头的日志)

项目中通常不使用该方式

原因:

1.日志需要较多自定义,放yml里导致其他配置也难以阅读

2.yml提供的日志配置只支持logback实现,切换实现后不可用

3.yml提供的logback配置不够全面

通过xml配置日志

1.appender:负责写日志的组件(输出到控制台、文件、日志服务器、消息队列等等)

2.appender-ref:引用某个appender

3.layout:配置日志输出格式

4.springProfile:配置日志在开发/测试/生产环境生效

5.springProperty:在xml配置中引用yml的配置值

6.property:在xml中定义值

logback-spring.xml模板示例

<?xml version="1.0" encoding="UTF-8"?>
<configuration><!--读取yml配置中的spring.application.name值赋值给FILE_NAME变量-->
    <springProperty scope="context" name="FILE_NAME" source="spring.application.name"/><!--定义FILE_PATH变量-->
    <property name="FILE_PATH" value="./logs"/>
    <springProfile name="dev"><!--开发环境的日志配置-->
        <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"><!--输出到控制台-->
            <layout><!--设置日志格式-->
                <pattern>%d{yyyy-MM-dd HH:mm:ss}[%thread] %-5level %logger -%msg%n</pattern>
            </layout>
        </appender>
        <root level="info"><!--设置日志等级 及 生效appender-->
            <appender-ref ref="STDOUT"/>
        </root>
    </springProfile>
    <springProfile name="test"><!--测试环境的日志配置-->
        <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
            <layout>
                <pattern>%d{yyyy-MM-dd HH:mm:ss}[%thread] %-5level %logger -%msg%n</pattern>
            </layout>
        </appender><!--输出到文件,文件会根据日期、大小进行归档-->
        <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
            <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"><!--文件路径-->
                <fileNamePattern>${FILE_PATH}/${FILE_NAME}%d{yyyy-MM-dd}.%i.log</fileNamePattern>
                <maxHistory>30</maxHistory><!--文件保存天数-->
                <maxFileSize>10MB</maxFileSize><!--一个文件最大值-->
            </rollingPolicy>
            <layout>
                <pattern>%d{yyyy-MM-dd HH:mm:ss}[%thread] %-5level %logger -%msg%n</pattern>
            </layout>
        </appender>
        <root level="info">
            <appender-ref ref="STDOUT"/>
            <appender-ref ref="FILE"/>
        </root>
    </springProfile>
    <springProfile name="prod"><!--生产环境的日志配置-->
        <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
            <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
                <fileNamePattern>${FILE_PATH}/${FILE_NAME}%d{yyyy-MM-dd}.%i.log</fileNamePattern>
                <maxHistory>30</maxHistory>
                <maxFileSize>10MB</maxFileSize>
            </rollingPolicy>
            <layout>
                <pattern>%d{yyyy-MM-dd HH:mm:ss}[%thread] %-5level %logger -%msg%n</pattern>
            </layout>
        </appender>
        <root level="error">
            <appender-ref ref="FILE"/>
        </root>
    </springProfile>
</configuration>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值