在微服務中,有時我們需要查看服務之前的調用情況,如下,我們想要查看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訪問查看