Questão nº 38
Questão de Tecnologia da Informação · FGV TJ-MS 2024 (nº 38)
A analista Laura está configurando o log de um servidor Tomcat. Ela optou por utilizar a implementação de log padrão do Tomcat, que é baseada em loggers e handlers. Optou ainda por concentrar toda a configuração no arquivo global de configuração de log. Os requisitos de log passados para a analista exigem que determinada classe de handler apresente duas instâncias com configurações diferentes.
Para configurar de forma distinta dois handlers de uma mesma classe, Laura deve:
- Ahabilitar o atributo global useParentHandlers;
- Badicionar aos nomes dos handlers o prefixo "multi";
- Cadicionar ao nome de cada handler um prefixo diferente; (alternativa correta)
- Ddefinir em cada handler um valor diferente para o atributo level;
- Edefinir em cada handler um valor diferente para o atributo prefix.
Resposta comentada
Gabarito Alternativa C
No Tomcat, o sistema de log padrão (Java Util Logging) usa handlers para direcionar as mensagens de log para diferentes destinos, como arquivos ou console. Para ter várias saídas de log diferentes usando o mesmo tipo de handler, cada uma com suas próprias regras, você precisa dar um nome único a cada uma dessas configurações de handler.
(A) Incorreta: O atributo `useParentHandlers` controla se um logger (o componente que gera a mensagem de log) deve repassar seus registros para os handlers de seu logger pai. Ele não é usado para criar ou diferenciar múltiplas instâncias de um mesmo handler.
(B) Incorreta: Adicionar o prefixo "multi" não é um mecanismo padrão ou reconhecido pelo sistema de log do Tomcat (Java Util Logging) para diferenciar instâncias de handlers. É um distrator.
(C) Correta: Para configurar duas ou mais instâncias de uma mesma classe de handler com configurações distintas, é essencial dar a cada instância um nome único na configuração. É através desses nomes que o sistema de log identifica e permite aplicar propriedades específicas (como `className`, `level`, `formatter`, e outras propriedades específicas do handler) a cada uma delas de forma independente. Por exemplo, você pode ter `1catalina.org.apache.juli.FileHandler` e `2catalina.org.apache.juli.FileHandler`, cada um com seu próprio conjunto de propriedades.
(D) Incorreta: O atributo `level` define o nível mínimo de severidade que um handler processará. Embora diferentes instâncias de handlers possam ter níveis diferentes, definir o `level` por si só não cria duas instâncias distintas; ele é uma propriedade que você configura para uma instância de handler que já foi identificada por um nome único. A armadilha aqui é confundir uma propriedade de configuração com o mecanismo de identificação da instância.
(E) Incorreta: O atributo `prefix` (se aplicável, como para o nome de um arquivo de log em um `FileHandler`) é uma propriedade de configuração de uma instância de handler, não o mecanismo para criar ou diferenciar instâncias distintas de handlers na configuração global. Você precisa primeiro ter instâncias nomeadas para então configurar seus prefixos.
Fonte: FGV TJ-MS 2024 Técnico de Nível Superior - Analista de Sistemas (Caderno Tipo 1). Reproduzida para fins de estudo.