SpringBoot-日志相關
來自: http://stackbox.cn/2016-03-springboot-log/
基礎使用
SpringBoot提供了一套基本的日志系統, 默認是基于 Logback+SLF4J, 最基本的配置文件如下
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<include resource="org/springframework/boot/logging/logback/base.xml" />
<!-- 用來顯示mybatis的sql -->
<logger name="cn.stackbox.mapper" level="DEBUG"/>
</configuration>其中 base.xml 的代碼如下
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<include resource="org/springframework/boot/logging/logback/base.xml" />
<root level="info">
<appender-ref ref="CONSOLE" />
<appender-ref ref="FILE" />
</root>
<logger name="cn.stackbox.mapper" level="DEBUG"/>
</configuration>可以看到springboot已經定義了基本的 ROOT-LOGGER, CONSOLE-APPENDER, FILE-APPENDER
Spring整合
可以使用spring來擴展profile的支持, 必須以 logback-spring.xml 命名
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<include resource="org/springframework/boot/logging/logback/base.xml" />
<logger name="org.springframework.web" level="INFO"/>
<logger name="org.springboot.sample" level="TRACE" />
<springProfile name="dev">
<logger name="org.springboot.sample" level="DEBUG" />
</springProfile>
<springProfile name="staging">
<logger name="org.springboot.sample" level="INFO" />
</springProfile>
</configuration>日志分割
可以用如下代碼進行日志分割
<appender name="MZRollingFileAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<File>/home/data/superalsrk/SLF4J/stackbox-eureka/eureka.log</File>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>/home/data/superalsrk/SLF4J/stackbox-eureka/eureka.%d{yyyy-MM-dd}.log</FileNamePattern>
<maxHistory>3000</maxHistory>
</rollingPolicy>
<encoder>
<Pattern>%d{YYYY-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{35} - %msg %n</Pattern>
</encoder>
</appender>一些擴展
目前我的需求是
- 線上會有Rolling日志, 放到磁盤的某個特殊位置
- 本地Console即可
所以我的腳本為
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<include resource="org/springframework/boot/logging/logback/base.xml" />
<springProfile name="production">
<appender name="STBRollingFileAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<File>/home/data/superalsrk/SLF4J/stackbox-eureka/eureka.log</File>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>/home/data/superalsrk/SLF4J/stackbox-eureka/eureka.%d{yyyy-MM-dd}.log</FileNamePattern>
<maxHistory>3000</maxHistory>
</rollingPolicy>
<encoder>
<Pattern>%d{YYYY-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{35} - %msg %n</Pattern>
</encoder>
</appender>
</springProfile>
<springProfile name="development">
<root level="INFO">
<appender-ref ref="CONSOLE" />
</root>
</springProfile>
<springProfile name="production">
<root level="INFO">
<appender-ref ref="CONSOLE" />
<appender-ref ref="STBRollingFileAppender" />
</root>
</springProfile>
</configuration>然后在 application.yml 里設置一下默認 Profile
spring:
profiles:
default: production這樣不加參數的時候就會用 production 這個Profile,然后為了讓 IDE使用 development , 可以加入一個 Program arguments(還有其他設置Profile的方法)
--spring.profiles.active=development
聲明: 本文 “SpringBoot-日志相關” 采用 CC BY-NC-SA 4.0 協議進行授權.
轉載請注明原文地址: http://stackbox.cn/2016-03-springboot-log/index.html
本文由用戶 vitwell 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!