A classe Level(nível) fornece os níveis para controle da exibição de mensagens de log. O level
OFF desliga a exibição de mensagem de log e ALL é usado para habilitar a exibição
de mensagens em todos os níveis.
Level
ALL - Todas as mensagens devem ser logadas
CONFIG - mensagem de configuração
FINE - mensagem de execução padrão
FINER - mensagem de execução mais detalhada
FINEST - mensagem de execução mais detalhada
INFO - mensagem de informação
OFF - Desliga o exibição de mensagens de log em todos os níveis
SEVERE - mensagem de falhas severas
WARNING - mensagem de potenciais problemas
Esses níveis seguem uma precedência de importância que pode ser vista logo abaixo. Quando
usado, apenas os níveis acima do configurado(incluso) terão suas mensagens de log exibidas.
Level
OFF
SEVERE
WARNING
INFO
CONFIG
FINE
FINER
FINEST
Para definir um nível de log fazemos uso do método setLevel da classe Logger como pode
ser observado na sintaxe abaixo:
Sintaxe
void setLevel(Level newLevel)
No próximo exemplo, instanciamos um objeto Logger e definidos o level ALL e invocamos todos
os métodos da classe Logger mencionados no início do tutorial.
Ex. 2:
import java.util.logging.ConsoleHandler;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.logging.SimpleFormatter;
public class Main
{
public static void main(String[] args)
{
Logger logger = Logger.getLogger(Main.class.getName());
logger.setLevel(Level.ALL);
logger.severe("Severe");
logger.warning("warning");
logger.info("info");
logger.config("config");
logger.fine("fine");
}
}
Saída
Jun 22, 2026 4:46:37 PM Main main
SEVERE: Severe
Jun 22, 2026 4:46:37 PM Main main
WARNING: warning
Jun 22, 2026 4:46:37 PM Main main
INFO: info
Como pode ser observado, as mensagens de log CONFIG e FINE não foram exibidas
de acordo com o level ALL informado para o método setLevel. Isso ocorre porque o
handler interno do objeto Logger está configurado para CONFIG por padrão.
Para contornar essa configuração padrão é necessário informar um handler customizado
com o level ALL ao objeto Logger como pode ser visto no exemplo a seguir que uso o
ConsoleHandler:
Ex. 3:
import java.util.logging.ConsoleHandler;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.logging.SimpleFormatter;
public class Main
{
public static void main(String[] args)
{
Logger logger = Logger.getLogger(Main.class.getName());
logger.setLevel(Level.ALL);
//novo handler
ConsoleHandler handler = new ConsoleHandler();
handler.setLevel(Level.ALL);
//adiciona handler custom
logger.addHandler(handler);
//Previne logs duplicados se logger base também imprime as mensagens
logger.setUseParentHandlers(false);
logger.severe("Severe");
logger.warning("warning");
logger.info("info");
logger.config("config");
logger.fine("fine");
}
}
Saída
Aug 10, 2026 9:07:08 PM Main main
SEVERE: Severe
Aug 10, 2026 9:07:09 PM Main main
WARNING: warning
Aug 10, 2026 9:07:09 PM Main main
INFO: info
Aug 10, 2026 9:07:09 PM Main main
CONFIG: config
Aug 10, 2026 9:07:09 PM Main main
FINE: fine
Após a configuração do handler customizado, os níveis restantes CONFIG e
FINE estão sendo usados para a exibição das mensagens de seus níveis como
esperado.