techhub.social is one of the many independent Mastodon servers you can use to participate in the fediverse.
A hub primarily for passionate technologists, but everyone is welcome

Administered by:

Server stats:

5.4K
active users

Galera, surgiu uma dúvida aqui e não consigo encontrar embasamento teórico para responder.

Em uma requisição HTTP, a minha aplicação atuando como server, tenho que retornar um erro de cliente (classe 4xx) se eu for logar esse evento, qual o log level que eu devo usar?

É uma operação esperada, logo INFO. Mas também é um erro do cliente WARNING.

Em alguns sistemas, seguíamos a regra de todo erro do cliente gerar um warning.

Mas e aí, pra você, logamos com INFO ou WARNING? Se possível, justifique xD

[Queria decidir um padrão pro curso de FastAPI, mas gostaria de ouvir opiniões antes de bater o martelo]

@dunossauro uma vez eu li sobre os níveis de severidade nos bugs do Debian (debian.org/Bugs/Developer#seve), e baseado nisso penso algo como:

- CRITICAL: Quebrou a aplicação, e não tem como responder outras requisições (indisponibilidade geral). Por exemplo, levou a finalização do processo
- ERROR: Algum problema que impede o processamento correto de uma requisição, mas pode não impactar as demais ou futuras requisições
- WARNING: Algum problema, mas que não implica em não conseguir responder corretamente à requisição. Por exemplo, uso de algo depreciado, primeira falha em algo que possui retry
- INFO: Qualquer log para acompanhar a execução do software
- DEBUG: Aquele log que normalmente é desnecessário e está desabilitado, mas pode ser habilitado para entender e acompanhar melhor uma execução

Ponto ruim é que acaba centralizando bastante as coisas no INFO.

www.debian.orgDebian -- Debian BTS — developer info
dev.to/eduardoklosowski

@dunossauro Mas nesse caso, talvez logaria como info, se puder marcar no trace como falha, ou warning mesmo para saber que tem requisições incorretas chegando, principalmente se for uma API interna (que teoricamente é possível ter mais controle de quem chama). Agora se for uma API pública, é um "erro" que não tem muito o que a aplicação possa fazer, então tendo mais para o info.