springboot自带的日志导出

其他详细内容可查询springboot官网。

Spring Boot docs – Configure Logback for logging

说明:

1外部依赖spring-boot-starter内嵌spring-boot-logging无须再引入该依赖。

2.该日志功能在Windows系统与Linux均可进行,但是需要区分配置。

 

具体日志显示如下:

 

具体实现流程:

1.开启输出文件配置

根据官网文档说明,在全局配置里增加日志属性,并且增加logback-spring.xml文件,否则日志文件只会记录在项目内部的logging.file位置。

 

 

所以配置开启只需在application.properties写下面这一句

#LOGGING
logging.config=classpath:logback-spring.xml

 

2.重点配置logback-spring.xml文件

下面我根据具体配置进行说明,注意格式要求,环境不同,对应配置不同:


 

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

<!-- 日志级别从低到高分为TRACE < DEBUG < INFO < WARN < ERROR < FATAL -->

<configuration>

<!-- 文件输出位置配置 -->

    <property name="PATTERN" value="%-5level [%d{HH:mm:ss.SSS}] [%thread] %logger{36} - %msg%n" />

<!--windows环境下打印日志写这2句-->

    <property name="LOG_PATH" value="D:/log" />

     <property name="LOG_File" value="log_info" />

<!--linux环境下打印日志写这2句-->

    <property name="Linux_LOG_PATH" value="/usr/local/log />

     <property name="Linux_LOG_File" value="log_info" />

         <!--   控制台日志输出配置 -->

        <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">

            <encoder charset="UTF-8">

                <pattern>${PATTERN}</pattern>

            </encoder>

        </appender>

<!--根据application.properties里的环境,如果是spring.profiles.active=dev,写下面开发环境的配置-->

        <!--开发环境文件日志输出配置 -->

      <appender name="FILELOG" class="ch.qos.logback.core.rolling.RollingFileAppender">

          <filter class="ch.qos.logback.classic.filter.ThresholdFilter"><!-- 只打印info以及更高级别信息日志 -->

                <level>INFO</level>

            </filter>

            <encoder charset="UTF-8">

                <pattern>${PATTERN}</pattern>

            </encoder>

            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">

                <fileNamePattern>${LOG_PATH}/${LOG_File}.%d{yyyy-MM-dd}.log</fileNamePattern>

                <maxHistory>30</maxHistory>

            </rollingPolicy>

     </appender>

        <appender name="ERROR_FILE_LOG" class="ch.qos.logback.core.rolling.RollingFileAppender">

            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">

                <fileNamePattern>${LOG_PATH}/${LOG_File}_ERROR.%d{yyyy-MM-dd}_ERROR.log</fileNamePattern>

                <maxHistory>30</maxHistory>

            </rollingPolicy>

            <encoder charset="UTF-8">

                <pattern>${PATTERN}</pattern>

            </encoder>

            <filter class="ch.qos.logback.classic.filter.LevelFilter"><!-- 只打印错误日志 -->

                <level>ERROR</level>

                <onMatch>ACCEPT</onMatch>

                <onMismatch>DENY</onMismatch>

            </filter>

        </appender>

     <!-- 测试环境+开发环境. 多个使用逗号隔开. -->

    <springProfile name="test,dev">

        <root level="ERROR">

            <appender-ref ref="ERROR_FILE_LOG" />

        </root>

       <root level="INFO">

            <appender-ref ref="CONSOLE" />

            <appender-ref ref="FILELOG" />

        </root>

    </springProfile>



<!--否则写下面生产环境的配置-->

      <!-- 生产环境 -->

      <appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">

            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">

                <fileNamePattern>${Linux_LOG_PATH}/${Linux_LOG_File}_info.%d{yyyy-MM-dd}.log</fileNamePattern>

                <maxHistory>30</maxHistory>

            </rollingPolicy>

            <encoder charset="UTF-8">

                <pattern>${PATTERN}</pattern>

            </encoder>

            <filter class="ch.qos.logback.classic.filter.ThresholdFilter"><!-- 只打info及更高级别信息日志 -->

                <level>INFO</level>

            </filter>

        </appender>

       

        <appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">

            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">

                <fileNamePattern>${Linux_LOG_PATH}/${Linux_LOG_File}_error.%d{yyyy-MM-dd}.log</fileNamePattern>

                <maxHistory>30</maxHistory>

            </rollingPolicy>

            <encoder charset="UTF-8">

                <pattern>${PATTERN}</pattern>

            </encoder>

            <filter class="ch.qos.logback.classic.filter.LevelFilter"><!-- 只打印错误日志 -->

                <level>ERROR</level>

                <onMatch>ACCEPT</onMatch>

                <onMismatch>DENY</onMismatch>

            </filter>

        </appender>

         <logger name="com.backstage" level="ERROR">

            <appender-ref ref="ERROR_FILE" />

        </logger>

        <logger name="com.backstage" level="INFO">

            <appender-ref ref="INFO_FILE" />

        </logger>

<!-- 生产环境 -->

   <springProfile name="prod">

       <root level="ERROR">

            <appender-ref ref="ERROR_FILE" />

        </root>

         <root level="Info">

            <appender-ref ref="CONSOLE" />

            <appender-ref ref="INFO_FILE" />

        </root>

    </springProfile>





</configuration>

 

然后你就可以在对应的目录下看到输出的日志了,我这里是所有的日志输出一个文件,然后再有错误的日志输出一个文件。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值