Escrevemos milhares de arquivos de log por vez

Olá camaradas!


O que acontece se eu definir o Spring Boot em um aplicativo logging.level.root=TRACE?


Todos os logs serão gravados em um único arquivo, no qual haverá várias classes pequenas.


Na melhor das hipóteses, com a ajuda, sifting appendervocê pode dividir no máximo 1 critério ("discriminador") - por exemplo, pelo nome do fluxo ou pelo nome da classe. E mesmo assim - haverá gravabilidade a partir do código fonte, que deve suportar os valores discriminadores em "MDC".


Para para para! Removemos logback, adicionamos e, com essa configuração simples, escrevemos em arquivos de log separados para cada classe e nível de log - e até em diretórios separados:


Bobbin.yml


destinations:
  - name: io.infinite.bobbin.config.FileDestinationConfig
    fileName: ("./LOGS/INFINITE/${className}/${level}/${className}_${level}_${date}.log")

E é isso que acontece:



Agora imagine que você está perguntando a um colega do SRE:


-      org.visa.api.Transfer
-     ?
-  ERROR 
- !  .

É claro que, conceitualmente, tudo corre em direção ao ELK (bem, splunk ou grafana). Mas nem sempre é configurado em todos os lugares - e os bons e antigos arquivos de log ainda são relevantes.


Mas acreditamos que precisamos ir do privado ao geral - poder fazer os truques mencionados acima dará chances a qualquer criador de logs na nuvem. Afinal, tudo depende da flexibilidade e facilidade de configuração.


Gravamos um vídeo demonstrando esse exemplo na íntegra e mostrando como ele funciona na dinâmica:



Gostam de assistir!


: Java 8 11, Gradle


( — !). , 2020 . logback log4j2. API — , Google Flogger.


Gradle Maven .


— Open Source .
.


!


All Articles