Spring|Spring Cloud Feign 之日志输出
文章图片
timg (1).jpeg Spring Cloud Feign 之日志输出
迁移到CSDN
环境信息: java 1.8、Spring boot 1.5.10.RELEASE、spring cloud-Edgware.SR3、maven 3.3+
第一章 Spring Cloud Feign 之初体验已经对Feign有了初步了解,这章介绍下Feign的日志输出
在平时开发过程中少不了查看日志解决问题,一个好的框架日志输出是必不可少的,Feign也一样
Feign日志输出说明
Feign的日志是以下部分组成
1、Feign的Level日志级别配置默认是:NONE,不要跟log日志级别混淆
【Spring|Spring Cloud Feign 之日志输出】日志级别枚举类 Logger.Level
NONE
不输出日志
BASIC
只有请求方法、URL、响应状态代码、执行时间
HEADERS
基本信息以及请求和响应头
FULL
请求和响应 的heads、body、metadata,建议使用这个级别
2、log日志级别配置,默认是debug
使用指定Feign类会包名配置日志打印级别
此处使用spring logging配置 比如打印 UserFeign logging.level.com.example.feign.UserFeign=debug
Feign日志输出-Logger.Level.FULL+log debug级别
全局开启方式 使用spring java config 配置,注意该类一定要放到spring可以扫描到的包下
/**
* feign 配置
* @author: sunshaoping
* @date: Create by in 下午4:07 2018/8/7
*/
@Configuration
public class FeignConfig {@Bean
Logger.Level feignLevel() {
return Logger.Level.FULL;
}
}
application.properties 配置debug 日志输出级别
user.url=http://localhost:8080/user
logging.level.com.example.feign.UserFeign=debug
运行
UserFeignTest.save
方法 可以看到以下保存user输出的请求和响应日志。2018-08-07 16:48:03.011 DEBUG 75661 --- [main] com.example.feign.UserFeign: [UserFeign#save] ---> POST http://localhost:8080/user HTTP/1.1
2018-08-07 16:48:03.011 DEBUG 75661 --- [main] com.example.feign.UserFeign: [UserFeign#save] Content-Type: application/json;
charset=UTF-8
2018-08-07 16:48:03.011 DEBUG 75661 --- [main] com.example.feign.UserFeign: [UserFeign#save] Content-Length: 27
2018-08-07 16:48:03.011 DEBUG 75661 --- [main] com.example.feign.UserFeign: [UserFeign#save]
2018-08-07 16:48:03.011 DEBUG 75661 --- [main] com.example.feign.UserFeign: [UserFeign#save] {"id":null,"name":"张三"}
2018-08-07 16:48:03.012 DEBUG 75661 --- [main] com.example.feign.UserFeign: [UserFeign#save] ---> END HTTP (27-byte body)
2018-08-07 16:48:03.041 DEBUG 75661 --- [main] com.example.feign.UserFeign: [UserFeign#save] <--- HTTP/1.1 200 (29ms)
2018-08-07 16:48:03.042 DEBUG 75661 --- [main] com.example.feign.UserFeign: [UserFeign#save] content-length: 0
2018-08-07 16:48:03.043 DEBUG 75661 --- [main] com.example.feign.UserFeign: [UserFeign#save] date: Tue, 07 Aug 2018 08:48:03 GMT
2018-08-07 16:48:03.043 DEBUG 75661 --- [main] com.example.feign.UserFeign: [UserFeign#save]
2018-08-07 16:48:03.043 DEBUG 75661 --- [main] com.example.feign.UserFeign: [UserFeign#save] <--- END HTTP (0-byte body)
运行
UserFeignTest.getUserByID
方法 可以看到以下查询user详情输出的请求和响应日志。2018-08-07 16:48:03.045 DEBUG 75661 --- [main] com.example.feign.UserFeign: [UserFeign#getUserByID] ---> GET http://localhost:8080/user/5 HTTP/1.1
2018-08-07 16:48:03.046 DEBUG 75661 --- [main] com.example.feign.UserFeign: [UserFeign#getUserByID] ---> END HTTP (0-byte body)
2018-08-07 16:48:03.051 DEBUG 75661 --- [main] com.example.feign.UserFeign: [UserFeign#getUserByID] <--- HTTP/1.1 200 (4ms)
2018-08-07 16:48:03.051 DEBUG 75661 --- [main] com.example.feign.UserFeign: [UserFeign#getUserByID] content-type: application/json;
charset=UTF-8
2018-08-07 16:48:03.051 DEBUG 75661 --- [main] com.example.feign.UserFeign: [UserFeign#getUserByID] date: Tue, 07 Aug 2018 08:48:03 GMT
2018-08-07 16:48:03.051 DEBUG 75661 --- [main] com.example.feign.UserFeign: [UserFeign#getUserByID] transfer-encoding: chunked
2018-08-07 16:48:03.051 DEBUG 75661 --- [main] com.example.feign.UserFeign: [UserFeign#getUserByID]
2018-08-07 16:48:03.054 DEBUG 75661 --- [main] com.example.feign.UserFeign: [UserFeign#getUserByID] {"id":"5","name":"张三"}
2018-08-07 16:48:03.055 DEBUG 75661 --- [main] com.example.feign.UserFeign: [UserFeign#getUserByID] <--- END HTTP (26-byte body)
总结
此章节只介绍了feign自带的日志输出配置方式,下面章节将详细介绍其实现原理及自定义log 日志级别输出。
样例地址 spring-cloud-feign 分支
Spring-Cloud-Feign之日志输出
,写在最后 Spring Cloud Feign 系列持续更新中。。。。。欢迎关注
如发现哪些知识点有误或是没有看懂,欢迎在评论区提出,博主及时改正。
欢迎转载请注明出处。
推荐阅读
- Activiti(一)SpringBoot2集成Activiti6
- SpringBoot调用公共模块的自定义注解失效的解决
- 解决SpringBoot引用别的模块无法注入的问题
- 2018-07-09|2018-07-09 Spring 的DBCP,c3p0
- spring|spring boot项目启动websocket
- Spring|Spring Boot 整合 Activiti6.0.0
- Spring集成|Spring集成 Mina
- springboot使用redis缓存
- Spring|Spring 框架之 AOP 原理剖析已经出炉!!!预定的童鞋可以识别下发二维码去看了
- Spring|Spring Boot之ImportSelector