spring-boot项目中使用logback进行日志记录

spring-boot的web项目对logback支持的依赖,只需要引入如下内容即可:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

若是非web项目,依赖如下即可:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-logging</artifactId>
</dependency>

  引入日志配置文件:

application.properties文件中引入日志配置文件
#=====================================  log  =============================
logging.config=classpath:logback.xml

日志配置文件logback.xml

<!--
scan:当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true
scanPeriod:设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scantrue时,此属性生效。默认的时间间隔为1分钟。
debug:当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false-->
<configuration scan="true" scanPeriod="10 seconds" debug="false">
    <!--<include resource="org/springframework/boot/logging/logback/base.xml"/>-->

    <!--
    <property>:用来定义变量值的标签,<property> 有两个属性,namevalue;其中name的值是变量的名称,value的值时变量定义的值。
    通过<property>定义的值会被插入到logger上下文中。定义变量后,可以使“${}”来使用变量。
    -->
    <property name="LOG_DEV_PATH" value="dev_logs"/>
    <!--以上信息也可以采用外部配置文件的方式获取,外部配置文件信息见文末,具体如下:-->
    <property resource="logback.properties"/>

    <!--控制台输出-->
    <appender name="STANDARD OUTPUT" class="ch.qos.logback.core.ConsoleAppender">

        <!--字符串输出,默认System.out,可配成System.err -->
        <Target>System.out</Target>

        <!--打印debug级别及以上日志信息-->
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>DEBUG</level>
        </filter>
        <!--
        日志信息格式化:
        %d{yyyy-MM-dd HH:mm:ss.SSS}:时间前缀格式,
        %-5level:从左边以5个字符的宽度显示级别
        %logger:全路径显示logger名,如com.wendao.card.booking.controller.CardInfoController
        -%msg:日志信息
        %n:换行符
        %highlight():高亮显示
        %boldYellow():粗黄显示
 -->
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %highlight(%-5level) %boldYellow(%logger) --%msg%n</pattern>
        </encoder>
    </appender>


    <!--debug日志文件输出-->
    <appender name="DEBUG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">

        <!--<file> : 被写入的文件名,可以是相对目录,也可以绝对目录,如果目录不存在则自动创建。-->
        <File>${LOG_DEV_PATH}/debug.log</File>

        <!--ThresholdFilter 过滤掉低于指定临界值的事件 . 当记录的级别等于或高于临界值时-->
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>DEBUG</level>
        </filter>

        <!--最常用的滚动策略,根据时间来制定滚动策略,即负责滚动也负责触发滚动。-->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${LOG_DEV_PATH}/debug-%d{yyyyMMdd}.log%i.log</fileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

                <!--日志文件最大大小-->
                <maxFileSize>500MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
            <!--按天保存,日志最长保存时间-->
            <maxHistory>30</maxHistory>
        </rollingPolicy>

        <!--日志信息格式-->
        <encoder>
            <Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger -%msg%n</Pattern>
        </encoder>
    </appender>

    <appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <File>${LOG_DEV_PATH}/info.log</File>
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>INFO</level>
        </filter>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${LOG_DEV_PATH}/info-%d{yyyyMMdd}.log%i.log</fileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>500MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
            <maxHistory>2</maxHistory>
        </rollingPolicy>
        <layout class="ch.qos.logback.classic.PatternLayout">
            <Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger -%msg%n</Pattern>
        </layout>
    </appender>
    <appender name="WARN_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <File>${LOG_DEV_PATH}/warn.log</File>
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>WARN</level>
        </filter>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${LOG_DEV_PATH}/warn-%d{yyyyMMdd}.log%i.log</fileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>500MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
            <maxHistory>2</maxHistory>
        </rollingPolicy>
        <layout class="ch.qos.logback.classic.PatternLayout">
            <Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger -%msg%n</Pattern>
        </layout>
    </appender>

    <appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>ERROR</level>
        </filter>
        <File>${LOG_DEV_PATH}/error.log</File>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${LOG_DEV_PATH}/error-%d{yyyyMMdd}.log%i.log</fileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>500MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
            <maxHistory>30</maxHistory>
        </rollingPolicy>
        <encoder>
            <Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger -%msg%n</Pattern>
        </encoder>
    </appender>

    <root level="DEBUG">
        <appender-ref ref="STANDARD OUTPUT"/>
        <appender-ref ref="DEBUG_FILE"/>
        <!--<appender-ref ref="INFO_FILE" />-->
        <!--<appender-ref ref="WARN_FILE" />-->
        <appender-ref ref="ERROR_FILE"/>
    </root>

</configuration>

 

logback.properties文件:

#日志生成的目录(当前项目与src同级别的logs目录)
LOG_PATH=logs

转载于:https://my.oschina.net/kevin2kelly/blog/983616

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值