Normalisierung der OpenFeign-Protokolle / Sudo Null IT News

Standard Logger OpenFeign bietet einen sehr unbequemen Ansatz zum Protokollieren der Kommunikation – es zeichnet die Anfrage getrennt von der Antwort auf, und jeder Header und jeder Body ist eine separate Protokollzeile.

Es ist sehr unpraktisch, solche Protokolle in einer Anwendung mit einem hohen Kommunikationsniveau zu analysieren, insbesondere in einer Umgebung mit mehreren Threads.

Die Lösung „Normalized Logger“ zielt darauf ab, diesen Fehler zu beheben – dieser Logger sammelt die Anfrage und die Antwort in einem Datensatz des zukünftigen Protokolls – jetzt werden sie nicht mehr verstreut.

Alter schlechter Logger

25.07.2022 14:12:43.572 DEBUG 1032530 — [Executor] vortäuschen.Logger : [AuthApi#login] —> POST HTTP/1.1 2022-07-25 14:12:43.573 DEBUG 1032530 — [Executor] vortäuschen.Logger : [AuthApi#login] Inhaltslänge: 23 2022-07-25 14:12:43.573 DEBUG 1032530 — [Executor] vortäuschen.Logger : [AuthApi#login] Inhaltstyp: application/json 2022-07-25 14:12:43.574 DEBUG 1032530 — [Executor] vortäuschen.Logger : [AuthApi#login] User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, wie Gecko) Chrome/91.0.4464.5 Safari/537.36 2022-07-25 14:12:43.575 DEBUG 1032530 — [Executor] vortäuschen.Logger : [AuthApi#login]
25.07.2022 14:12:43.576 DEBUG 1032530 — [Executor] vortäuschen.Logger : [AuthApi#login] {“login”:”123456789″} 2022-07-25 14:12:43.576 DEBUG 1032530 — [Executor] vortäuschen.Logger : [AuthApi#login] —> END HTTP (21-Byte-Text) 2022-07-25 14:12:43.901 DEBUG 1032530 — [Executor] vortäuschen.Logger : [AuthApi#login] <--- UNBEKANNT 200 (324 ms) 2022-07-25 14:12:43.901 DEBUG 1032530 --- [Executor] vortäuschen.Logger : [AuthApi#login] Cache-Steuerung: no-cache 2022-07-25 14:12:43.901 DEBUG 1032530 --- [Executor] vortäuschen.Logger : [AuthApi#login] cf-cache-status: DYNAMISCH 2022-07-25 14:12:43.901 DEBUG 1032530 --- [Executor] vortäuschen.Logger : [AuthApi#login] cf-ray: 730476518ea441ce-AMS 2022-07-25 14:12:43.901 DEBUG 1032530 --- [Executor] vortäuschen.Logger : [AuthApi#login] Inhaltstyp: Anwendung/json 2022-07-25 14:12:43.901 DEBUG 1032530 --- [Executor] vortäuschen.Logger : [AuthApi#login] Datum: Mo, 25. Juli 2022 11:12:43 GMT 2022-07-25 14:12:43.901 DEBUG 1032530 --- [Executor] vortäuschen.Logger : [AuthApi#login] erwartet-ct: max-age=604800, report-uri=" 2022-07-25 14:12:43.901 DEBUG 1032530 --- [Executor] vortäuschen.Logger : [AuthApi#login] Feature-Richtlinie: Accelerometer 'none'; Kamera 'keine'; Geolokalisierung 'keine'; Gyroskop 'keine'; Magnetometer 'keine'; Mikrofon 'kein'; Zahlung*; USB 'keine' 2022-07-25 14:12:43.901 DEBUG 1032530 --- [Executor] vortäuschen.Logger : [AuthApi#login] Referrer-Richtlinie: Strict-Origin-When-Cross-Origin 2022-07-25 14:12:43.901 DEBUG 1032530 --- [Executor] vortäuschen.Logger : [AuthApi#login] Server: cloudflare 2022-07-25 14:12:43.901 DEBUG 1032530 --- [Executor] vortäuschen.Logger : [AuthApi#login] Set-Cookie: ACCESS_TOKEN=eyJh9uygCUMA659bAZ54SHpSNy_KFXQ; Höchstalter = 1800; Domäne=.beispiel.com; Pfad=/; sicher; SameSite=None 2022-07-25 14:12:43.901 DEBUG 1032530 --- [Executor] vortäuschen.Logger : [AuthApi#login] Strict-Transport-Security: max-age=31536000 2022-07-25 14:12:43.901 DEBUG 1032530 --- [Executor] vortäuschen.Logger : [AuthApi#login] x-Inhaltstyp-Optionen: nosniff 2022-07-25 14:12:43.901 DEBUG 1032530 --- [Executor] vortäuschen.Logger : [AuthApi#login] x-Frame-Optionen: sameorigin 2022-07-25 14:12:43.901 DEBUG 1032530 --- [Executor] vortäuschen.Logger : [AuthApi#login] x-xss-Schutz: 1; Modus = Block 2022-07-25 14:12:43.901 DEBUG 1032530 --- [Executor] vortäuschen.Logger : [AuthApi#login] 25.07.2022 14:12:43.902 DEBUG 1032530 --- [Executor] vortäuschen.Logger : [AuthApi#login] {"status":{"code":"OK","message":"OK"},"body":{"id":"20826"}} 2022-07-25 14:12:43.902 DEBUG 1032530 - -- [Executor] vortäuschen.Logger : [AuthApi#login] <--- END HTTP (61-Byte-Text)

Normalisierter Logger

2022-07-25 14:16:06.217 INFO 1057053 — [Executor] me.bvn13.openfeign.logger.NormalizedFeignLogger : Normalisierte vorgetäuschte Anfrage {AuthApi#login(LoginRequestDto)=[AuthApi#login] }: [
—> POST HTTP/1.1
Content-Length: 21
Content-Type: application/json
user-agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4464.5 Safari/537.36

{“phone”:”123456789″}
—> END HTTP (21-byte body)
] hat eine Antwort [
<— UNKNOWN 200 (411ms)
cache-control: no-cache
cf-cache-status: DYNAMIC
cf-ray: 73047b41ffd2fa4c-AMS
content-type: application/json
date: Mon, 25 Jul 2022 11:16:06 GMT
expect-ct: max-age=604800, report-uri=”
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: 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
x-xss-protection: 1; mode=block

{“status”:{“code”:”OK”,”message”:”OK”},”body”:{“id”:”20826″}}
<— END HTTP (61-byte body)
]

So beginnen Sie mit der Verwendung eines neuen Loggers

1) Fügen Sie die Abhängigkeit in Ihr Projekt ein

me.bvn13.openfeign.logger feign-normalized-logger 0.1.3

2) Konfiguration für FeignClient erstellen

import vorgetäuscht.Logger; public class MyFeignConfig { @Bean public Logger logger() { return new NormalizedFeignLogger(); } }

3) wenden Sie diese Konfiguration in Ihrem Client an

@FeignClient(name = “auth”, configuration = MyFeignConfig.class) öffentliche Schnittstelle AuthApi { /*…methods…*/ }

4) Aktivieren Sie die Protokollebene DEBUG für NormalizedFeignLogger

Für Slf4J + Logback:

Protokollierung: Ebene: me.bvn13.openfeign.logger.NormalizedFeignLogger: DEBUG

5) Vergessen Sie nicht, den FULL-Logging-Level des FeignClient selbst anzugeben

vortäuschen: client: config: auth: logger-level: FULL

Dies ist die Übersetzung des Artikels durch den Autor

Hauptcode-Repository

Github-Klon

Similar Posts

Leave a Reply

Your email address will not be published.