SpringCloud-Feign[微服務日誌處理]

在微服務中,有時我們需要查看服務之前的調用情況,如下,我們想要查看consumer調用provider的情況,瀏覽器到consumer的調用情況我們可以通過瀏覽器查看。

通過案例我們來看下怎麼查看consumer調用provider的情況

1.創建項目

2.添加 logback.xml 文件

通過logback來實現日誌信息的持久化

<?xml version="1.0" encoding="UTF-8" ?>
 <configuration>
<!--定義日誌文件的存儲地址 勿在 LogBack 的配置中使用相對路徑-->  
    <property name="LOG_HOME" value="${catalina.base}/logs/" />  
    <!-- 控制檯輸出 -->   
    <appender name="Stdout" class="ch.qos.logback.core.ConsoleAppender">
       <!-- 日誌輸出編碼 -->  
        <layout class="ch.qos.logback.classic.PatternLayout">   
             <!--格式化輸出:%d表示日期,%thread表示線程名,%-5level:級別從左顯示5個字符寬度%msg:日誌消息,%n是換行符--> 
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n   
            </pattern>   
        </layout>   
    </appender>   
    <!-- 按照每天生成日誌文件 -->   
    <appender name="RollingFile"  class="ch.qos.logback.core.rolling.RollingFileAppender">   
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--日誌文件輸出的文件名-->
            <FileNamePattern>${LOG_HOME}/server.%d{yyyy-MM-dd}.log</FileNamePattern>   
            <MaxHistory>30</MaxHistory>
        </rollingPolicy>   
        <layout class="ch.qos.logback.classic.PatternLayout">  
            <!--格式化輸出:%d表示日期,%thread表示線程名,%-5level:級別從左顯示5個字符寬度%msg:日誌消息,%n是換行符--> 
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n   
            </pattern>   
       </layout> 
        <!--日誌文件最大的大小-->
       <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
         <MaxFileSize>10MB</MaxFileSize>
       </triggeringPolicy>
    </appender>     

    <!-- 日誌輸出級別 -->
    <root level="DEBUG">   
        <appender-ref ref="Stdout" />   
        <appender-ref ref="RollingFile" />   
    </root> 

<!--日誌異步到數據庫 -->  
<!--     <appender name="DB" class="ch.qos.logback.classic.db.DBAppender">
        日誌異步到數據庫 
        <connectionSource class="ch.qos.logback.core.db.DriverManagerConnectionSource">
           連接池 
           <dataSource class="com.mchange.v2.c3p0.ComboPooledDataSource">
              <driverClass>com.mysql.jdbc.Driver</driverClass>
              <url>jdbc:mysql://127.0.0.1:3306/databaseName</url>
              <user>root</user>
              <password>root</password>
            </dataSource>
        </connectionSource>
  </appender> -->

</configuration>

3.設置日誌輸出級別

Logback 的輸出日誌級別需要時 debug 級別

4.在啓動類中添加一個方法

在啓動類中添加一個獲取日誌級別的方法。


@EnableFeignClients
@EnableDiscoveryClient
@SpringBootApplication
public class SpringcloudFeignProdcutConsumerApplication {

    /**
     * NONE:不記錄任何信息,默認值
     * BASIC:記錄請求方法、請求 URL、狀態碼和用時
     * HEADERS:在 BASIC 基礎上再記錄一些常用信息
     * FULL:記錄請求和相應的所有信息
     * @return
     */
    @Bean
    public Logger.Level getLogger(){
        return Logger.Level.FULL;
    }

    public static void main(String[] args) {
        SpringApplication.run(SpringcloudFeignProdcutConsumerApplication.class, args);
    }

}

5.啓動程序測試

分別啓動provider和consumer訪問查看

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章