springBoot自带日志(logback)配置以及使用

springBoot日志(logback)配置以及使用

1.简介

刚从.net转为java,学习了springBoot,想起了当时工作中用.net记录日志,然后想用springBoot记录一下日志,从网上看了很多大神写的各种方法,挑了一种,自己用明白了,特意记录一下!

2.配置

因为logback是springBoot自带的日志工具,所以不需要单独添加依赖(不知道为什么不需要的,去maven配置文件里面进到springboot的父项目配置下自行查看,节点是 parent ),直接开始配置。

2.1创建配置文件

在resources目录下直接创建名为logback-spring.xml的文件即可。

2.2编写配置文件

<?xml version="1.0" encoding="UTF-8"?>

<configuration>
    <!--定义日志文件的存储地址,使用绝对路径-->
    <!--<property name="LOG_HOME" value="d:/logs/govern-config/"/>-->
	<!--生成日志的文件夹名称-->
    <springProperty scope="context" name="LOG_HOME" source="logging.rootpath" defaultValue="logs/"/>
	<!--生成的文本文件前缀-->
    <springProperty scope="context" name="SERVER_NAME" source="spring.application.name" defaultValue="ZYInterface"/>
    <springProperty scope="context" name="PORT" source="server.port" defaultValue=""/>
	<!--生成的文本文件编码格式-->
    <springProperty scope="context" name="ENCODING" source="logging.encoding" defaultValue="GBK"/>
    <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" />
    <conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" />
    <conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" />
<!--控制台输出的信息格式-->
    <property name="CONSOLE_LOG_PATTERN" value="${CONSOLE_LOG_PATTERN:-%clr(%d{HH:mm:ss.SSS}){faint} %clr(%-5level) - %clr(%-40.40logger{39}){blue} %clr(:){faint}  -l%-3L %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>



    <!-- Console 控制台输出设置 -->
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <Pattern>${CONSOLE_LOG_PATTERN}</Pattern>
            <charset>${ENCODING}</charset>
        </encoder>
    </appender>

    <!-- 按照每天生成日志文件 -->
    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--日志文件输出的文件名-->
            <fileNamePattern>${LOG_HOME}/%d{yyyy-MM-dd}/${SERVER_NAME}-%d{yyyy-MM-dd}-${PORT}.log</fileNamePattern>
        </rollingPolicy>
        <encoder>
            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
			<!--日志文件输出的信息格式-->
            <pattern> %d{ HH:mm:ss.SSS } %-5level -> %msg%n</pattern>
<!--            <pattern> %d{ HH:mm:ss.SSS } -> %-5level %-40.40logger{39} Line:%-3L - %msg%n</pattern>-->
            <!--<pattern> > %d{HH:mm:ss.SSS} %-5level %-40.40logger{39} Line:%-3L - %msg%n</pattern-->>
        </encoder>
    </appender>

    <!-- 异步输出 -->
    <appender name="ASYNC" class="ch.qos.logback.classic.AsyncAppender">
        <!-- 不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 -->
        <discardingThreshold>0</discardingThreshold>
        <!-- 更改默认的队列的深度,该值会影响性能.默认值为256 -->
        <queueSize>512</queueSize>
        <!-- 添加附加的appender,最多只能添加一个 -->
        <appender-ref ref="FILE"/>
    </appender>
<!--输出等级和需要输出在哪些地方(ref的内容是上方配置的节点的name)-->
    <logger name="com.test.newdemo" level="DEBUG">
        <appender-ref ref="FILE"/>
        <appender-ref ref="CONSOLE"/>
    </logger>
<!--    <root level="ERROR">-->
<!--        <appender-ref ref="FILE"/>-->
<!--&lt;!&ndash;        <appender-ref ref="FILE"/>&ndash;&gt;-->
<!--        <appender-ref ref="CONSOLE"/>-->
<!--    </root>-->
</configuration>

3.使用方法

3.1 需要引入的类

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

3.2 具体的操作方法

//对日志类的引用
private final Logger log = LoggerFactory.getLogger(this.getClass());
//日志的记录
log.info("日志记录");
上一篇:Spring Boot日志


下一篇:Springboot集成graylog