Como deixei os logs do Go mais legíveis com um handler customizado
Estou desenvolvendo um projeto que precisa de logs estruturados, e por isso comecei a avaliar algumas bibliotecas conhecidas, como o zap
(do Uber) e o novo slog
, que agora faz parte da biblioteca padrão do Go.
Optei por usar o slog
, mas algo me incomodava. Por padrão, ele exibe os logs no terminal de forma simples, sem cores, identação ou qualquer formatação que ajude na leitura, especialmente em logs com estruturas mais complexas.
Foi aí que surgiu a pergunta, "como posso melhorar essa visualização?"
Pesquisando, descobri que era possível criar um handler personalizado. Então resolvi colocar a mão na massa e escrever o meu próprio.
Assim nasceu o slogpretty, um handler que melhora drasticamente a legibilidade dos logs do slog
, com suporte a:
- cores por nível de log (INFO, ERROR, etc.),
- identação para dados estruturados,
- formatos aninhados mais complexos.
Resolvi compartilhar a solução com a comunidade.
Se você também acha o TextHandler
meio sem graça, dá uma olhada no repositório. Pode te ajudar bastante!