Na maioria das vezes não gastamos o tempo necessário para planejar corretamente os logs das nossas aplicações, que posteriormente nos causa um retrabalho, muitas vezes desnecessário.
O uso bem planejado e aplicado de logs pode, além de melhorar uma análise futura sobre algum problema, impactar de forma significativa o desempenho da aplicação, principalmente para processos intensos.
Pensando em exemplificar e demonstrar um pouco desse impacto, seguem dois exemplos com seu benchmark, respectivamente.
O primeiro de uma forma comum de "loggar" informações no código, mas pouco valor de informação, se torna apenas um dado:
E o segundo com o log estruturado, apresentando somente no final os tempos de inicio, finalização e a mensagem.
benchmark_logs_enhancement_test.go
Ambos exemplos, possuem um loop de cem mil de índices, que usando goroutines
, incrementa uma variável.
Ao iniciar é capturado a hora atual, e ao finalizar, é impresso o tempo que levou.
Estou usando a biblioteca logrus
de logs, pois tem inúmeras propriedade e funcionalidade interessantes, como o log estruturado.
Nitidamente pode ser perceber, a diferença que pode causar no desempenho das aplicações, um log não pensado corretamente.
Top comments (0)