log4j - Níveis de registro
o org.apache.log4j.Levelníveis. Você também pode definir seus níveis personalizados, classificando oLevel classe.
Nível | Descrição |
---|---|
TODOS | Todos os níveis, incluindo níveis personalizados. |
DEPURAR | Designa eventos informativos refinados que são mais úteis para depurar um aplicativo. |
INFO | Designa mensagens informativas que destacam o progresso do aplicativo em nível de granulação grossa. |
ADVERTIR | Designa situações potencialmente prejudiciais. |
ERRO | Designa eventos de erro que ainda podem permitir que o aplicativo continue em execução. |
FATAL | Designa eventos de erro muito graves que provavelmente levarão o aplicativo ao aborto. |
FORA | A classificação mais alta possível e destina-se a desligar o registro. |
VESTÍGIO | Designa eventos informativos mais detalhados do que DEBUG. |
Como funcionam os níveis?
Uma solicitação de log de nível p em um logger com nível q é enabledse p> = q. Essa regra está no cerne do log4j. Ele assume que os níveis estão ordenados. Para os níveis padrão, temos ALL <DEBUG <INFO <WARN <ERROR <FATAL <OFF.
O exemplo a seguir mostra como podemos filtrar todas as nossas mensagens DEBUG e INFO. Este programa usa o método setLevel (Level.X) do logger para definir um nível de log desejado:
Este exemplo imprimiria todas as mensagens, exceto Debug e Info:
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.setLevel(Level.WARN);
log.trace("Trace Message!");
log.debug("Debug Message!");
log.info("Info Message!");
log.warn("Warn Message!");
log.error("Error Message!");
log.fatal("Fatal Message!");
}
}
Quando você compila e executa o LogClass programa, ele geraria o seguinte resultado -
Warn Message!
Error Message!
Fatal Message!
Definir níveis usando arquivo de configuração
log4j fornece a você a definição de nível com base no arquivo de configuração que o liberta de alterar o código-fonte quando quiser alterar o nível de depuração.
A seguir está um exemplo de arquivo de configuração que executaria a mesma tarefa que fizemos usando o log.setLevel(Level.WARN) método no exemplo acima.
# 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
Vamos agora usar nosso programa a seguir -
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 você obterá o seguinte resultado em /usr/home/log4j/log.out arquivo -
Warn Message!
Error Message!
Fatal Message!