2、SpringBoot基础功能之日志配置

2018-10-14  本文已影响0人  小manong

一、日志使用简介

1、开发中日志使用必要性(这里推荐使用lockback)

2、logback,slf4j,log4j之间的关系

二、logback配置详解

1、Logger、appender及layout

2、logger context

3、有效级别及级别的继承

4、打印方法与基本的选择规则

打印方法决定记录请求的级别。例如,如果 L 是一个 logger 实例,那么,语句 L.info("..")是一条级别为 INFO的记录语句。记录请求的级别在高于或等于其 logger 的有效级别时被称为被启用,否则,称为被禁用。记录请求级别为 p,其 logger的有效级别为 q,只有则当 p>=q时,该请求才会被执行。该规则是 logback 的核心。级别排序为: TRACE < DEBUG < INFO < WARN < ERROR

三、Springboot默认的日志配置

如果配置文件 logback-test.xml 和 logback.xml 都不存在,那么 logback 默认地会调用BasicConfigurator ,创建一个最小化配置。最小化配置由一个关联到根 logger 的ConsoleAppender 组成。输出用模式为%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n 的 PatternLayoutEncoder 进行格式化。root logger 默认级别是 DEBUG。

四、Springboot中自定义日志实现

1、配置logback-spring.xml文件(官方优先推荐使用-spring.*的配置方式)

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <include resource="org/springframework/boot/logging/logback/defaults.xml"/>
    <include resource="org/springframework/boot/logging/logback/console-appender.xml"/>
<!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
    <property name="logPath" value="/data/log/blog/"/>
    <property name="blogLogFile" value="blog"/>
<!--Appender主要用于指定日志输出的目的地,目的地可以是控制台、文件、远程套接字服务器、 MySQL、PostreSQL、 Oracle和其他数据库、 JMS和远程UNIX Syslog守护进程等。 -->
<!--负责写日志的组件,它有两个必要属性name和class。name指定appender名称,class指定appender的全限定名-->
    <appender name="BLOGHOME"
              class="ch.qos.logback.core.rolling.RollingFileAppender">

        <file>${logPath}/${blogLogFile}.log</file>
<!--指定日志分割策略-->
        <rollingPolicy
                class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <fileNamePattern>${logPath}/${blogLogFile}-%d{yyyy-MM-dd}.%i.log
            </fileNamePattern>
            <maxFileSize>300MB</maxFileSize>
            <maxHistory>20</maxHistory>
            <totalSizeCap>20GB</totalSizeCap>
        </rollingPolicy>
        <encoder>
        <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
            </pattern>
            <charset>UTF-8</charset> <!-- 此处设置字符集 -->
        </encoder>
    </appender>
<!--其他-->
 <springProfile name="bloglog">
 <!-- 日志输出级别LEVEL:选项TRACE, DEBUG, INFO, WARN, ERROR, FATAL, OFF -->
        <root level="INFO">
        <appender-ref ref="CONSOLE" />
            <appender-ref ref="BLOGHOME"/>
        </root>
    </springProfile>
</configuration>

2.java中输出

public class Logback {
    private static String patter = "blog:{@author}";
    private final static Logger logger = LoggerFactory.getLogger(Logback.class);

    public static void main(String[] args) {
        // logback测试
        logger.info(patter.replace("{@author}", "qiuxiaowei"));
    }

}

3、结果

19:47:36.154 [main] INFO com.qiu.blog.Logback - blog:qiuxiaowei

五、多环境下的日志配置

参考博文:http://tengj.top/2017/04/05/springboot7/

上一篇 下一篇

猜你喜欢

热点阅读