No desenvolvimento de microserviços, o logging é uma tarefa muito básica, gravando informações de registro de solicitações de solicitação, o que nos ajuda a resolver problemas e a reproduzir problemas. O conteúdo do log inclui o link, método de requisição, useragent, cabeçalho, IP atual da máquina de microserviços, nome da máquina de nós, ambiente em execução, IP do solicitante, consumo de tempo e outras informações.
Usando o bloqueador de filtro do framework Spring Cloud, você pode interceptar os registros de informação de requisição de todas as interfaces e persistir os registros de requisição no MongoDB.
Estrutura do log de interface
Primeiro, crie um novo objeto e defina a estrutura do log, cujo código é o seguinte:
Filtro logarítmico
Crie um novo filtro RequestLoggerFilter, herde a interface Filter e implemente o método doFilter, esse filtro tem a maior prioridade, e a prioridade do filtro pode ser definida por meio da anotação @Order.Filtra os commits de log POST/PUT (excluindo registros de commit de arquivos multipart/form-data), o código é o seguinte:
Os logs persistem até o MongoDB
Para não afetar o uso normal da interface, o log da interface será inserido na fila thread-safe, o programa abrirá uma thread, a thread consumirá os dados da fila, armazenará os dados no MongoDB e usará o maven para introduzir dependências.
Para mais informações sobre mongodb, veja org.springframework.boot.autoconfigure.mongo.MongoProperties
application.yml A configuração é a seguinte:
Formato URI: nome de usuário: root, senha: aaaaaaa, endereço do banco de dados: 127.0.0.1, número da porta: 27017, nome do banco de dados: test Por exemplo: mongodb://root:aaaaaa@127.0.0.1:27017/test
SeO nome de usuário ou senha contém um símbolo especial, então use a codificação da URL, caso contrário, um erro será reportado!
Chame MongoTemplate para persistir dados no banco de dados com o seguinte código:
(Fim)
|