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 appender
você 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 .
.
!