Nello sviluppo di microservizi, la logging è un compito molto basilare, registrando le informazioni di log delle richieste dell'interfaccia, che ci aiuta a risolvere problemi e a riprodurli. Il contenuto del log include il link, il metodo di richiesta, l'useragent, l'intestare, l'IP attuale della macchina microservizio, il nome della macchina nodo, l'ambiente in esecuzione, l'IP del richiedente, il consumo di tempo e altre informazioni.
Utilizzando il bloccante di filtro del framework Spring Cloud, puoi intercettare i record di informazioni di richiesta di tutte le interfacce e persistere i record di richiesta in MongoDB.
Struttura del log dell'interfaccia
Per prima cosa, crea un nuovo oggetto e definisci la struttura del log, il codice è il seguente:
Filtro logaritmico
Crea un nuovo filtro RequestLoggerFilter, eredita l'interfaccia Filter e implementa il metodo doFilter; questo filtro ha la priorità più alta e la priorità del filtro può essere impostata tramite l'annotazione @Order.Filtra i commit POST/PUT dei log (escludendo i record di commit multipart/form-data), il codice è il seguente:
I log persistono su MongoDB
Per non influire sull'uso normale dell'interfaccia, il log dell'interfaccia verrà inserito nella coda thread-safe, il programma aprirà un thread, il thread consumerà i dati nella coda, memorizzerà i dati in MongoDB e userà Maven per introdurre dipendenze.
Per maggiori informazioni su mongodb, consulta org.springframework.boot.autoconfigure.mongo.MongoProperties
application.yml La configurazione è la seguente:
Formato URI: nome utente: root, password: aaaaaaa, indirizzo database: 127.0.0.1, numero porta: 27017, nome database: test Per esempio: mongodb://root:aaaaaa@127.0.0.1:27017/test
SeIl nome utente o la password contiene un simbolo speciale, quindi usa la codifica URL, altrimenti verrà segnalato un errore!
Chiama MongoTemplate per far persistere i dati nel database con il seguente codice:
(Fine)
|