Spring Boot 教程(五):log日志配置

教程简介

本项目内容为Spring Boot教程样例。目的是通过学习本系列教程,读者可以从0到1掌握spring boot的知识,并且可以运用到项目中。如您觉得该项目对您有用,欢迎点击收藏和点赞按钮,给予支持!!教程连载中,欢迎持续关注!

环境

IDE: Eclipse Neon
Java: 1.8
Spring Boot: 1.5.12
数据库:MYSQL

本章简介

本节将通过配置Spring Boot的默认日志logback来实现日志管理。

说明

日志级别从低到高分:

TRACE < DEBUG < INFO < WARN < ERROR < FATAL 

配置

在src/main/resources下面添加logback.xml,内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <!--======================================= 本地变量 ======================================== -->
    <!--在没有定义${LOG_HOME}系统变量的时候,可以设置此本地变量。提交测试、上线时,要将其注释掉,使用系统变量。 -->
    <!-- <property name="LOG_HOME" value="D:/data/logs" /> -->

    <!-- 应用名称:和统一配置中的项目代码保持一致(小写) -->
    <property name="APP_NAME" value="base" />
    <!--日志文件保留天数 -->
    <property name="LOG_MAX_HISTORY" value="180" />
    <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径 -->
    <!--应用日志文件保存路径 -->
    <property name="LOG_APP_HOME" value="${APP_NAME}/app" />

    <!--=========================== 按照每天生成日志文件:默认配置=================================== -->
    <!-- 控制台输出 -->
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 -->
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
        </encoder>
    </appender>
    <!-- 按照每天生成日志文件:主项目日志 -->
    <appender name="APP"
        class="ch.qos.logback.core.rolling.RollingFileAppender">
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--日志文件输出的文件名 -->
            <FileNamePattern>${LOG_APP_HOME}/base.%d{yyyy-MM-dd}.log
            </FileNamePattern>
            <!--日志文件保留天数 -->
            <MaxHistory>${LOG_MAX_HISTORY}</MaxHistory>
        </rollingPolicy>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 -->
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{500} - %msg%n</pattern>
        </encoder>
    </appender>
    <!--=============================== 日志输出: 默认主业务日志 ====================================== -->
    <logger name="org.springframework">
        <level value="WARN" />
    </logger>
    <logger name="org.apache.shiro">
        <level value="WARN" />
    </logger>
    <logger name="freemarker">
        <level value="WARN" />
    </logger>
    <logger name="org.hibernate">
        <level value="WARN" />
    </logger>
    <logger name="org.hibernate.SQL">
        <level value="DEBUG" />
    </logger>
    
    <root level="DEBUG">
        <appender-ref ref="APP" />
        <appender-ref ref="STDOUT" />
    </root>
</configuration>

配置application.properties

logging.config=classpath:logback.xml

以上配置会将日志记录下来,生成在以下位置:

clipboard.png

使用

使用超级简单,直接在类中定义输出即可。

clipboard.png

以上日志也会记录在log日志文件中。

代码:gitee.com/shaojiepeng/SpringBootCourse

阅读 6.6k发布于 2018-05-03
推荐阅读

本专栏内容为Spring Boot教程样例。目的是通过学习本系列教程,读者可以从0到1掌握spring boot的知识,...

4 人关注
5 篇文章
专栏主页
目录