Os níveis de log são usados para categorizar as entradas em seu arquivo de log. Mas eles categorizam de uma forma muito específica, ou seja, por urgência. O nível permite separar os seguintes tipos de informações:
- Você pode filtrar seus arquivos de log durante a pesquisa.
- Você pode gerenciar a quantidade de informações registradas.
A quantidade e o tipo de informações fornecidas no sistema e os logs de eventos são controlados pelas configurações de nível log4j no arquivo de configuração. Cada mensagem de log é prefixada pelo nível da mensagem.
Os níveis de registro são uma instância de org.apache.log4j.Level aula.
Log4j possui os seguintes níveis de criação de log:
Nível de registro | Descrição |
---|---|
TODOS | Este nível ativa todos os níveis de criação de log. Inclui os níveis de criação de log customizados que você definiu. Depois que este for configurado e os níveis não forem considerados, todos os anexadores começarão a despejar os eventos de log nos arquivos de log. |
DEPURAR | Debug é muito usado para depurar o aplicativo em tempo de desenvolvimento. Cada mensagem de log aparecerá nos arquivos de log assim que esse nível for definido. Basicamente pertence aos desenvolvedores. |
INFORMAÇÕES | O nível de log INFO é usado para registrar mensagens sobre a operação rotineira do aplicativo. Em tempo real, os administradores do sistema monitoram os logs de informações para garantir o que está acontecendo no sistema no momento e se há algum problema no fluxo normal. |
AVISAR | O nível de log WARN é usado para indicar que você pode ter um problema e que detectou uma situação incomum. Talvez você estivesse exigindo invocar um serviço e ele falhou algumas vezes antes de se conectar em uma nova tentativa automática. É inesperado e incomum, mas nenhum dano real foi causado e não se sabe se o problema persistirá ou voltará. Alguém deveria investigar os avisos. |
ERRO | O nível de log ERROR é usado para indicar um problema sério que você deve investigar imediatamente. Não tão sério quanto FATAL, mas ainda é um problema. Significa simplesmente que seu aplicativo atingiu um estado realmente indesejado. Por exemplo, entrada formatada inesperada, indisponibilidade do banco de dados. |
FATAL | O nível de log FATAL, assim como ERROR, designa um problema. Mas, diferentemente de ERROR, designa um evento de erro muito sério. Você não vai considerar muito a presença deles em um dia normal, mas uma vez que aparecem, sinaliza uma notícia muito ruim, até mesmo a aplicação da morte. |
DESLIGADO | Esta é a classificação mais alta possível e tem como objetivo desativar o registro. |
VESTÍGIO | Isso foi introduzido recentemente na versão 1.2 e inclui mais informações para depurar logs de nível. |
Como definir níveis de registro?
Defina o nível de log em log4j.properties
log4j.rootLogger=DEBUG, consoleAppender log4j.appender.consoleAppender=org.apache.log4j.ConsoleAppender log4j.appender.consoleAppender.layout=org.apache.log4j.PatternLayout log4j.appender.consoleAppender.layout.ConversionPattern=[%t] %-5p %c %x - %m%n #Log info messages for package 'com.javatpoint.web.controller' log4j.logger.com.javatpoint.web.controller=INFO, consoleAppender
Definir nível de log em log4j.xml
Como funcionam os níveis de registro?
O funcionamento dos níveis de registro é realmente muito simples. Durante o tempo de execução, o código do aplicativo criará solicitações de registro, que terão um nível. Ao mesmo tempo, a estrutura de log possui um nível de log configurado, que atua como um limite. Se o nível de solicitação estiver no nível configurado ou em um nível superior, ele será registrado no destino configurado. Se não, é negado. É simples assim.
Vamos considerar isso como a seguinte ordem de classificação para os níveis:
ALL <trace < debug info warn error fatal off pre> <p>So if, for instance, the logging framework level is set to WARN, requests with any of the levels WARN, FATAL, and ERROR will be accepted, while the rest will be denied.</p> <img src="//techcodeview.com/img/log4j-tutorial/51/log4j-logging-levels.webp" alt="Log4J Logging Levels"> <p>In the above diagram, the vertical header displays the Level of the LogEvent, while the horizontal header shows the Level associated with the appropriate logging configuration.</p> <p>For the first column, you will see how the log works in each level. For example, for WARN, (FATAL, ERROR, and WARN) will be visible. For OFF, nothing will be visible.</p> <h3>Log4j Level Example</h3> <p> <strong>Configuration File:</strong> </p> <pre> # Define the root logger with appender file log = /usr/home/log4j log4j.rootLogger = WARN, FILE # Define the file appender log4j.appender.FILE=org.apache.log4j.FileAppender log4j.appender.FILE.File=${log}/log.out # Define the layout for file appender log4j.appender.FILE.layout=org.apache.log4j.PatternLayout log4j.appender.FILE.layout.conversionPattern=%m%n </pre> <p> <strong>Java Program:</strong> </p> <pre> import org.apache.log4j.*; public class LogClass { private static org.apache.log4j.Logger log = Logger.getLogger(LogClass.class); public static void main(String[] args) { log.trace('Trace Message!'); log.debug('Debug Message!'); log.info('Info Message!'); log.warn('Warn Message!'); log.error('Error Message!'); log.fatal('Fatal Message!'); } } </pre> <p>Now compile and run the above program and we would get the following output in c:/usr/home/log4j/log.out file:</p> <pre> Warn Message! Error Message! Fatal Message! </pre> <hr></trace>
Programa Java:
import org.apache.log4j.*; public class LogClass { private static org.apache.log4j.Logger log = Logger.getLogger(LogClass.class); public static void main(String[] args) { log.trace('Trace Message!'); log.debug('Debug Message!'); log.info('Info Message!'); log.warn('Warn Message!'); log.error('Error Message!'); log.fatal('Fatal Message!'); } }
Agora compile e execute o programa acima e obteremos a seguinte saída no arquivo c:/usr/home/log4j/log.out:
Warn Message! Error Message! Fatal Message!