Vista previa del material en texto
1. O que e "logging" no contexto de desenvolvimento de software? A) Um metodo de criptografia de dados B) O processo de registrar eventos, mensagens e dados de execucao de um sistema C) Um protocolo de comunicacao entre servidores D) Um mecanismo para compilar codigo automaticamente Resposta correta: B Explicacao: Logging e o processo de registrar informacoes durante a execucao de um programa. Esses registros podem incluir erros, eventos importantes, status de componentes, entre outros. E uma pratica essencial para monitorar, depurar e manter sistemas em producao. 2. Qual e uma vantagem de se utilizar niveis de log (log levels)? A) Permite a compactacao automatica dos arquivos de log B) Melhora a performance do sistema ao evitar qualquer tipo de log C) Organiza as mensagens conforme sua importancia e facilita o monitoramento D) Evita que logs sejam enviados para servidores externos Resposta correta: C Explicacao: Niveis de log, como DEBUG, INFO, WARNING, ERROR e CRITICAL, ajudam a categorizar mensagens de acordo com sua importancia. Isso permite que desenvolvedores filtrem logs durante analise e priorizem mensagens criticas. 3. Qual dos seguintes niveis de log e geralmente usado para mensagens de erro que nao impedem o funcionamento do sistema, mas que precisam de atencao? A) DEBUG B) INFO C) WARNING D) CRITICAL Logging Resposta correta: C Explicacao: O nivel WARNING e utilizado para indicar situacoes inesperadas que nao impedem a execucao do sistema, mas que podem indicar futuros problemas. Ele serve como um alerta preventivo. 4. Em aplicacoes Python, qual biblioteca padrao e utilizada para logging? A) log4j B) logging C) pylog D) syslog Resposta correta: B Explicacao: A biblioteca padrao do Python para logging e a logging. Ela oferece uma estrutura poderosa para registrar mensagens de forma hierarquica e flexivel, com suporte a diferentes niveis e destinos de saida. 5. Por que nao e recomendado usar print() em vez de uma ferramenta de logging apropriada? A) Porque print() so funciona em Linux B) Porque print() pode sobrescrever variaveis C) Porque print() nao oferece controle sobre formato, destino ou nivel da mensagem D) Porque print() consome mais memoria Resposta correta: C Explicacao: Usar print() para depuracao ou logs limita o controle do desenvolvedor. Com ferramentas de logging, e possivel definir formatos, armazenar mensagens em arquivos, enviar para servidores e filtrar por niveis funcionalidades que print() nao oferece. 6. Qual configuracao abaixo e ideal para producao em um sistema critico? A) Nivel DEBUG com saida no console B) Nivel ERROR com saida em arquivo rotativo C) Nivel WARNING com saida apenas no terminal D) Nivel CRITICAL com envio para um e-mail pessoal Resposta correta: B Explicacao: Em ambientes de producao, o ideal e registrar apenas mensagens relevantes, como erros e falhas. Alem disso, usar arquivos rotativos evita que os logs crescam indefinidamente, comprometendo o armazenamento. 7. O que e log rotation (rotacao de logs)? A) Um sistema de criptografia usado em logs confidenciais B) Um processo de excluir automaticamente todos os logs antigos C) A pratica de alternar arquivos de log quando atingem determinado tamanho ou tempo D) Um mecanismo para armazenar logs em ordem alfabetica Resposta correta: C Explicacao: Log rotation garante que os arquivos de log nao crescam indefinidamente. Quando um log atinge um certo tamanho ou tempo, ele e arquivado, e um novo e iniciado. Isso facilita a manutencao e analise posterior. 8. Em sistemas distribuidos, por que o uso de logging centralizado e recomendado? A) Porque elimina a necessidade de backups B) Porque permite acessar logs de todos os servicos em um unico ponto C) Porque desativa o log local para economizar memoria D) Porque reduz a complexidade do codigo Resposta correta: B Explicacao: Em arquiteturas com multiplos servicos ou microsservicos, logs distribuidos dificultam o rastreio de eventos. Solucoes como ELK (Elasticsearch, Logstash, Kibana) centralizam logs, tornando a analise mais eficiente. 9. Qual das opcoes representa um bom uso de logging durante o desenvolvimento? A) Registrar cada linha de codigo executada B) Registrar apenas as excecoes que causam a parada do sistema C) Registrar acoes importantes, excecoes capturadas e mensagens uteis para debug D) Nao registrar nada para evitar sobrecarga Resposta correta: C Explicacao: Durante o desenvolvimento, o ideal e registrar informacoes relevantes, incluindo falhas e comportamento do sistema. O excesso de logs ou sua ausencia pode dificultar o trabalho de encontrar bugs. 10. Em relacao a seguranca, qual cuidado e essencial ao implementar logging? A) Garantir que o log esteja sempre em tempo real B) Nao registrar informacoes sensiveis, como senhas ou tokens C) Enviar todos os logs para o e-mail do administrador D) Usar arquivos criptografados somente no modo DEBUG Resposta correta: B Explicacao: Logs nao devem conter informacoes sensiveis. Expor senhas, tokens de acesso, dados de usuarios ou chaves de API pode comprometer a seguranca e privacidade do sistema. 11. Qual e a finalidade do logger name ao configurar logging? A) Escolher o tipo de banco de dados que armazenara os logs B) Diferenciar mensagens de log por modulos ou pacotes do sistema C) Adicionar emojis nas mensagens de log D) Indicar o tamanho maximo do log Resposta correta: B Explicacao: O logger name permite identificar a origem da mensagem de log dentro do codigo, especialmente util em sistemas grandes ou com muitos modulos. Isso facilita a triagem e analise dos eventos registrados. 12. O que faz um Handler na estrutura de logging? A) Formata os logs em linguagem natural B) Define o nivel do log a ser registrado C) Determina o destino da mensagem de log (arquivo, console, rede etc.) D) Exclui logs automaticamente apos 24 horas Resposta correta: C Explicacao: Um Handler e responsavel por enviar a mensagem de log para o destino apropriado, como arquivos, terminais, sockets ou sistemas remotos. Ele e uma das pecas centrais da arquitetura de logging. 13. O que e um Formatter em sistemas de logging? A) Uma funcao que converte logs em graficos visuais B) Um componente que define o estilo ou padrao da mensagem de log C) Um protocolo de rede usado para transferir logs D) Um compactador de arquivos de log Resposta correta: B Explicacao: O Formatter define como as mensagens de log sao exibidas, podendo incluir data, hora, nome do logger, nivel da mensagem, texto etc. Isso melhora a legibilidade e analise posterior. 14. Qual alternativa representa uma pratica ruim ao configurar logging? A) Usar log rotation em ambientes de producao B) Registrar excecoes com traceback completo C) Deixar o nivel de log em DEBUG em producao D) Adicionar identificadores unicos a cada log Resposta correta: C Explicacao: Deixar o nivel de log em DEBUG em producao pode gerar grande volume de dados, prejudicar a performance e, pior ainda, expor informacoes sensiveis. A pratica recomendada e usar niveis mais altos, como WARNING ou ERROR. 15. Qual e uma vantagem de armazenar logs em formato JSON? A) Permite uso de emojis no conteudo dos logs B) Facilita a leitura manual em qualquer editor de texto C) Facilita a analise automatica e integracao com ferramentas de monitoramento D) Reduz o tamanho dos arquivos de log Resposta correta: C Explicacao: Logs em JSON sao estruturados, permitindo facil analise por maquinas. Ferramentas modernas de monitoramento e observabilidade conseguem ler, indexar e processar esses logs com eficiencia. Se desejar, posso gerar mais perguntas para complementar ou adaptar ao nivel de dificuldade desejado (iniciante, intermediario, avancado).