Logging de erros em sistemas web
Gabarito: letra B. O logging estruturado em JSON com campos padronizados (timestamp, severidade, identificador de correlação) é uma prática recomendada por facilitar o processamento automatizado e a integração com ferramentas de monitoramento — conforme descrito na alternativa. As demais alternativas violam boas práticas de segurança, desempenho ou observabilidade.
A banca testa o conhecimento sobre registro adequado de logs, um tópico essencial para observabilidade e segurança.
Alternativa A — ❌ Incorreta
Registrar senhas e tokens expõe dados sensíveis, violando princípios de segurança. Em vez disso, logs devem evitar informações confidenciais. O erro está em priorizar a reprodução do problema em detrimento da segurança.
Alternativa B — ✅ Correta ⟵ GABARITO
O uso de logs estruturados (ex.: JSON) com campos padronizados como timestamp, severity e correlation_id permite o processamento automatizado por ferramentas como Elasticsearch, Logstash, Kibana ou Splunk, melhorando a observabilidade.
Alternativa C — ❌ Incorreta
Retornar stack traces e detalhes da estrutura do banco de dados ao usuário expõe informações internas do sistema, representando risco de segurança. Mensagens de erro para o usuário devem ser genéricas; os detalhes devem ser registrados em logs internos.
Alternativa D — ❌ Incorreta
A definição de níveis de severidade (ERROR, WARN, INFO, DEBUG) é fundamental em produção para filtrar e priorizar eventos. O volume de logs em produção costuma ser alto, e os níveis ajudam a separar o que requer atenção imediata.
Alternativa E — ❌ Incorreta
Gravar logs no mesmo banco de dados transacional e dentro da mesma transação que originou o erro acopla o logging ao fluxo principal, aumentando latência e risco de falha. A boa prática é usar um sistema de logging assíncrono e independente (ex.: arquivos de log, serviços dedicados).
Gabarito: letra B.