Compare commits
42 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
36fa59c870 | ||
![]() |
4b1630456e | ||
![]() |
72e5b9615c | ||
![]() |
1446c40f04 | ||
![]() |
0d4a379837 | ||
![]() |
420a19c2be | ||
![]() |
27b4ad81e1 | ||
![]() |
111f76c1e0 | ||
![]() |
5034afd525 | ||
![]() |
72fd298a43 | ||
![]() |
942df51f6d | ||
![]() |
9b32085279 | ||
![]() |
d46d4c0cfb | ||
![]() |
c833c3649b | ||
![]() |
fca67c061b | ||
![]() |
ab50200939 | ||
![]() |
4835a1ebd7 | ||
![]() |
ec1b55ca31 | ||
![]() |
a1b6641c06 | ||
![]() |
fc26734cd1 | ||
![]() |
bd1ba6c061 | ||
![]() |
9aac4e4099 | ||
![]() |
107070177f | ||
![]() |
efaf166a07 | ||
![]() |
e50e8f5164 | ||
![]() |
177def9285 | ||
![]() |
cc3a25e783 | ||
![]() |
2133247384 | ||
![]() |
52bb04f158 | ||
![]() |
f6fab4c558 | ||
![]() |
5892682e0c | ||
![]() |
322b85f72e | ||
![]() |
5425bff30e | ||
![]() |
8df8cae896 | ||
![]() |
16d2d33309 | ||
![]() |
85afd433c1 | ||
![]() |
220abfdcaa | ||
![]() |
18c14afa4d | ||
![]() |
0251db7c99 | ||
![]() |
8ae930ba71 | ||
![]() |
a7e8cfdfad | ||
![]() |
2947b07872 |
79
README.md
79
README.md
@ -12,42 +12,40 @@ communication into one log entry.
|
||||
|
||||
## Old bad Logger
|
||||
|
||||
All parts are separeted from each other:
|
||||
All parts are separated from each other:
|
||||
1) Request:
|
||||
1) request headers - every header is put into separated entry
|
||||
2) requst body - at separated entry
|
||||
2) request body - at separated entry
|
||||
2) Response:
|
||||
1) response headers - separately
|
||||
2) response body - at separated entry as well
|
||||
|
||||
```
|
||||
|
||||
2022-07-25 14:12:43.572 DEBUG 1032530 --- [Executor] feign.Logger : [AuthApi#login] ---> POST https://example.com/api/v1/login HTTP/1.1
|
||||
2022-07-25 14:12:43.573 DEBUG 1032530 --- [Executor] feign.Logger : [AuthApi#login] Content-Length: 23
|
||||
2022-07-25 14:12:43.573 DEBUG 1032530 --- [Executor] feign.Logger : [AuthApi#login] Content-Type: application/json
|
||||
2022-07-25 14:12:43.574 DEBUG 1032530 --- [Executor] feign.Logger : [AuthApi#login] user-agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4464.5 Safari/537.36
|
||||
2022-07-25 14:12:43.575 DEBUG 1032530 --- [Executor] feign.Logger : [AuthApi#login]
|
||||
2022-07-25 14:12:43.576 DEBUG 1032530 --- [Executor] feign.Logger : [AuthApi#login] {"login":"123456789"}
|
||||
2022-07-25 14:12:43.576 DEBUG 1032530 --- [Executor] feign.Logger : [AuthApi#login] ---> END HTTP (21-byte body)
|
||||
2022-07-25 14:12:43.901 DEBUG 1032530 --- [Executor] feign.Logger : [AuthApi#login] <--- UNKNOWN 200 (324ms)
|
||||
2022-07-25 14:12:43.901 DEBUG 1032530 --- [Executor] feign.Logger : [AuthApi#login] cache-control: no-cache
|
||||
2022-07-25 14:12:43.901 DEBUG 1032530 --- [Executor] feign.Logger : [AuthApi#login] cf-cache-status: DYNAMIC
|
||||
2022-07-25 14:12:43.901 DEBUG 1032530 --- [Executor] feign.Logger : [AuthApi#login] cf-ray: 730476518ea441ce-AMS
|
||||
2022-07-25 14:12:43.901 DEBUG 1032530 --- [Executor] feign.Logger : [AuthApi#login] content-type: application/json
|
||||
2022-07-25 14:12:43.901 DEBUG 1032530 --- [Executor] feign.Logger : [AuthApi#login] date: Mon, 25 Jul 2022 11:12:43 GMT
|
||||
2022-07-25 14:12:43.901 DEBUG 1032530 --- [Executor] feign.Logger : [AuthApi#login] expect-ct: max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
|
||||
2022-07-25 14:12:43.901 DEBUG 1032530 --- [Executor] feign.Logger : [AuthApi#login] feature-policy: accelerometer 'none'; camera 'none'; geolocation 'none'; gyroscope 'none'; magnetometer 'none'; microphone 'none'; payment *; usb 'none'
|
||||
2022-07-25 14:12:43.901 DEBUG 1032530 --- [Executor] feign.Logger : [AuthApi#login] referrer-policy: strict-origin-when-cross-origin
|
||||
2022-07-25 14:12:43.901 DEBUG 1032530 --- [Executor] feign.Logger : [AuthApi#login] server: cloudflare
|
||||
2022-07-25 14:12:43.901 DEBUG 1032530 --- [Executor] feign.Logger : [AuthApi#login] set-cookie: ACCESS_TOKEN=eyJh9uygCUMA659bAZ54SHpSNy_KFXQ; Max-Age=1800; Domain=.example.com; Path=/; Secure; SameSite=None
|
||||
2022-07-25 14:12:43.901 DEBUG 1032530 --- [Executor] feign.Logger : [AuthApi#login] strict-transport-security: max-age=31536000
|
||||
2022-07-25 14:12:43.901 DEBUG 1032530 --- [Executor] feign.Logger : [AuthApi#login] x-content-type-options: nosniff
|
||||
2022-07-25 14:12:43.901 DEBUG 1032530 --- [Executor] feign.Logger : [AuthApi#login] x-frame-options: sameorigin
|
||||
2022-07-25 14:12:43.901 DEBUG 1032530 --- [Executor] feign.Logger : [AuthApi#login] x-xss-protection: 1; mode=block
|
||||
2022-07-25 14:12:43.901 DEBUG 1032530 --- [Executor] feign.Logger : [AuthApi#login]
|
||||
2022-07-25 14:12:43.902 DEBUG 1032530 --- [Executor] feign.Logger : [AuthApi#login] {"status":{"code":"OK","message":"OK"},"body":{"id":"20826"}}
|
||||
2022-07-25 14:12:43.902 DEBUG 1032530 --- [Executor] feign.Logger : [AuthApi#login] <--- END HTTP (61-byte body)
|
||||
|
||||
2022-07-25 14:12:43.572 DEBUG 1032530 --- [Executor] feign.Logger : [AuthApi#login] ---> POST https://example.com/api/v1/login HTTP/1.1
|
||||
2022-07-25 14:12:43.573 DEBUG 1032530 --- [Executor] feign.Logger : [AuthApi#login] Content-Length: 23
|
||||
2022-07-25 14:12:43.573 DEBUG 1032530 --- [Executor] feign.Logger : [AuthApi#login] Content-Type: application/json
|
||||
2022-07-25 14:12:43.574 DEBUG 1032530 --- [Executor] feign.Logger : [AuthApi#login] user-agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4464.5 Safari/537.36
|
||||
2022-07-25 14:12:43.575 DEBUG 1032530 --- [Executor] feign.Logger : [AuthApi#login]
|
||||
2022-07-25 14:12:43.576 DEBUG 1032530 --- [Executor] feign.Logger : [AuthApi#login] {"login":"123456789"}
|
||||
2022-07-25 14:12:43.576 DEBUG 1032530 --- [Executor] feign.Logger : [AuthApi#login] ---> END HTTP (21-byte body)
|
||||
2022-07-25 14:12:43.901 DEBUG 1032530 --- [Executor] feign.Logger : [AuthApi#login] <--- UNKNOWN 200 (324ms)
|
||||
2022-07-25 14:12:43.901 DEBUG 1032530 --- [Executor] feign.Logger : [AuthApi#login] cache-control: no-cache
|
||||
2022-07-25 14:12:43.901 DEBUG 1032530 --- [Executor] feign.Logger : [AuthApi#login] cf-cache-status: DYNAMIC
|
||||
2022-07-25 14:12:43.901 DEBUG 1032530 --- [Executor] feign.Logger : [AuthApi#login] cf-ray: 730476518ea441ce-AMS
|
||||
2022-07-25 14:12:43.901 DEBUG 1032530 --- [Executor] feign.Logger : [AuthApi#login] content-type: application/json
|
||||
2022-07-25 14:12:43.901 DEBUG 1032530 --- [Executor] feign.Logger : [AuthApi#login] date: Mon, 25 Jul 2022 11:12:43 GMT
|
||||
2022-07-25 14:12:43.901 DEBUG 1032530 --- [Executor] feign.Logger : [AuthApi#login] expect-ct: max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
|
||||
2022-07-25 14:12:43.901 DEBUG 1032530 --- [Executor] feign.Logger : [AuthApi#login] feature-policy: accelerometer 'none'; camera 'none'; geolocation 'none'; gyroscope 'none'; magnetometer 'none'; microphone 'none'; payment *; usb 'none'
|
||||
2022-07-25 14:12:43.901 DEBUG 1032530 --- [Executor] feign.Logger : [AuthApi#login] referrer-policy: strict-origin-when-cross-origin
|
||||
2022-07-25 14:12:43.901 DEBUG 1032530 --- [Executor] feign.Logger : [AuthApi#login] server: cloudflare
|
||||
2022-07-25 14:12:43.901 DEBUG 1032530 --- [Executor] feign.Logger : [AuthApi#login] set-cookie: ACCESS_TOKEN=eyJh9uygCUMA659bAZ54SHpSNy_KFXQ; Max-Age=1800; Domain=.example.com; Path=/; Secure; SameSite=None
|
||||
2022-07-25 14:12:43.901 DEBUG 1032530 --- [Executor] feign.Logger : [AuthApi#login] strict-transport-security: max-age=31536000
|
||||
2022-07-25 14:12:43.901 DEBUG 1032530 --- [Executor] feign.Logger : [AuthApi#login] x-content-type-options: nosniff
|
||||
2022-07-25 14:12:43.901 DEBUG 1032530 --- [Executor] feign.Logger : [AuthApi#login] x-frame-options: sameorigin
|
||||
2022-07-25 14:12:43.901 DEBUG 1032530 --- [Executor] feign.Logger : [AuthApi#login] x-xss-protection: 1; mode=block
|
||||
2022-07-25 14:12:43.901 DEBUG 1032530 --- [Executor] feign.Logger : [AuthApi#login]
|
||||
2022-07-25 14:12:43.902 DEBUG 1032530 --- [Executor] feign.Logger : [AuthApi#login] {"status":{"code":"OK","message":"OK"},"body":{"id":"20826"}}
|
||||
2022-07-25 14:12:43.902 DEBUG 1032530 --- [Executor] feign.Logger : [AuthApi#login] <--- END HTTP (61-byte body)
|
||||
```
|
||||
|
||||
## New Normalized Logger
|
||||
@ -55,8 +53,7 @@ All parts are separeted from each other:
|
||||
The whole communication (request and response parts) is combined into one log entry.
|
||||
|
||||
```
|
||||
|
||||
2022-07-25 14:16:06.217 INFO 1057053 --- [Executor] com.pf.profee.api.NormalizedFeignLogger : normalized feign request {AuthApi#login(LoginRequestDto)=[AuthApi#login] }: [
|
||||
2022-07-25 14:16:06.217 INFO 1057053 --- [Executor] me.bvn13.openfeign.logger.NormalizedFeignLogger : normalized feign request {AuthApi#login(LoginRequestDto)=[AuthApi#login] }: [
|
||||
---> POST https://example.com/api/v1/login HTTP/1.1
|
||||
Content-Length: 23
|
||||
Content-Type: application/json
|
||||
@ -75,7 +72,7 @@ expect-ct: max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi
|
||||
feature-policy: accelerometer 'none'; camera 'none'; geolocation 'none'; gyroscope 'none'; magnetometer 'none'; microphone 'none'; payment *; usb 'none'
|
||||
referrer-policy: strict-origin-when-cross-origin
|
||||
server: cloudflare
|
||||
set-cookie: QA_JWT_ACCESS_TOKEN=eyJhboft6rzD6Be16dXY5lgQNCzOZNFe4ra_NDIdmXlXi19hlvaQ; Max-Age=1800; Domain=.example.com; Path=/; Secure; SameSite=None
|
||||
set-cookie: ACCESS_TOKEN=eyJhboft6rzD6Be16dXY5lgQNCzOZNFe4ra_NDIdmXlXi19hlvaQ; Max-Age=1800; Domain=.example.com; Path=/; Secure; SameSite=None
|
||||
strict-transport-security: max-age=31536000
|
||||
x-content-type-options: nosniff
|
||||
x-frame-options: sameorigin
|
||||
@ -84,12 +81,11 @@ x-xss-protection: 1; mode=block
|
||||
{"status":{"code":"OK","message":"OK"},"body":{"id":"20826"}}
|
||||
<--- END HTTP (61-byte body)
|
||||
]
|
||||
|
||||
```
|
||||
|
||||
# How to use
|
||||
|
||||
In order to user Normalized Logger into the application they must the following.
|
||||
In order to use Normalized Logger into the application they must the following.
|
||||
|
||||
## 0) Check the latest version
|
||||
|
||||
@ -103,17 +99,17 @@ for Maven
|
||||
<dependency>
|
||||
<groupId>me.bvn13.openfeign.logger</groupId>
|
||||
<artifactId>feign-normalized-logger</artifactId>
|
||||
<version>0.1.0</version>
|
||||
<version>0.1.4</version>
|
||||
</dependency>
|
||||
```
|
||||
|
||||
for Gradle
|
||||
|
||||
```groovy
|
||||
implementation 'me.bvn13.openfeign.logger:feign-normalized-logger:0.1.0'
|
||||
implementation 'me.bvn13.openfeign.logger:feign-normalized-logger:0.1.4'
|
||||
```
|
||||
|
||||
## 2) Create Feign configuration and enable logger
|
||||
## 2) Create Feign configuration and enable logger + specify FULL logging level
|
||||
|
||||
```java
|
||||
import feign.Logger;
|
||||
@ -125,6 +121,11 @@ public class MyFeignConfig {
|
||||
return new NormalizedFeignLogger();
|
||||
}
|
||||
|
||||
@Bean
|
||||
public Logger.Level logLevel() {
|
||||
return Logger.Level.FULL;
|
||||
}
|
||||
|
||||
}
|
||||
```
|
||||
|
||||
@ -137,12 +138,12 @@ public interface AuthApi {
|
||||
}
|
||||
```
|
||||
|
||||
### 4) Adjust DEBUG level for Normalized Logger
|
||||
### 4) Adjust INFO level for Normalized Logger
|
||||
|
||||
for Slf4J + Logback
|
||||
|
||||
```yaml
|
||||
logging:
|
||||
level:
|
||||
me.bvn13.openfeign.logger.NormalizedFeignLogger: DEBUG
|
||||
me.bvn13.openfeign.logger.NormalizedFeignLogger: INFO
|
||||
```
|
2
pom.xml
2
pom.xml
@ -7,7 +7,7 @@
|
||||
|
||||
<groupId>me.bvn13.openfeign.logger</groupId>
|
||||
<artifactId>feign-normalized-logger</artifactId>
|
||||
<version>0.1.0</version>
|
||||
<version>0.1.5-SNAPSHOT</version>
|
||||
|
||||
<packaging>jar</packaging>
|
||||
|
||||
|
15
publish.sh
Executable file
15
publish.sh
Executable file
@ -0,0 +1,15 @@
|
||||
#!/bin/bash
|
||||
|
||||
./mvnw gitflow:release-start gitflow:release-finish
|
||||
|
||||
git push origin master
|
||||
|
||||
git push --tags
|
||||
|
||||
git push origin develop
|
||||
|
||||
read -p "Which version to publish? > " version
|
||||
|
||||
git checkout $version
|
||||
|
||||
./mvnw deploy -Prelease
|
@ -15,7 +15,6 @@ import java.util.concurrent.ConcurrentHashMap;
|
||||
/**
|
||||
* OpenFeign Logger
|
||||
* combines request and response part into single log entry:
|
||||
* <br></br>
|
||||
* <pre>
|
||||
* {@code
|
||||
*
|
||||
@ -96,7 +95,7 @@ public class NormalizedFeignLogger extends feign.Logger {
|
||||
}
|
||||
|
||||
private void showLogs(String configKey) {
|
||||
log.debug("normalized feign request " + methodName.get() + ": [\n" +
|
||||
log.info("Normalized feign request " + methodName.get() + ": [\n" +
|
||||
collectionToDelimitedString(logsRequest.get().getOrDefault(configKey, Collections.emptyList()), "\n") +
|
||||
"\n] has response [\n" +
|
||||
collectionToDelimitedString(logsResponse.get().getOrDefault(configKey, Collections.emptyList()), "\n") +
|
||||
|
Loading…
x
Reference in New Issue
Block a user