Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Industrial programming >> Java

Java Logging

Java Logging


Neste tutorial, aprenderemos sobre o Java Logging e seus vários componentes com a ajuda de exemplos.

Java nos permite criar e capturar mensagens e arquivos de log por meio do processo de log.

Em Java, o log requer frameworks e APIs. Java tem uma estrutura de registro embutida no java.util.logging pacote.

Também podemos usar estruturas de terceiros como Log4j, Logback e muito mais para fins de registro.


Componentes de Log de Java


A figura abaixo representa os componentes principais e o fluxo de controle da API Java Logging (java.util.logging ).

1. Registrador


O Logger classe fornece métodos para log. Podemos instanciar objetos do Logger class e chame seus métodos para fins de registro.

Vamos dar um exemplo.
Logger logger = Logger.getLogger("newLoggerName");

O getLogger() método do Logger classe é usada para encontrar ou criar um novo Logger . O argumento string define o nome do registrador.

Aqui, isso cria um novo Logger objeto ou retorna um Logger existente com o mesmo nome.

É uma convenção para definir um Logger após a classe atual usando class.getName() .
Logger logger = Logger.getLogger(MyClass.class.getName());

Observação: Este método lançará NullPointerException se o nome passado for null .

Cada Logger tem um nível que determina a importância da mensagem de log. Existem 7 níveis básicos de log:
Nível de registro (em ordem decrescente) Usar
GRAVE falha grave
AVISO mensagem de aviso, um possível problema
INFORMAÇÕES informações gerais de tempo de execução
CONFIGURAÇÃO informações de configuração
BEM informações gerais do desenvolvedor (mensagens de rastreamento)
MAIS informações detalhadas do desenvolvedor (mensagens de rastreamento)
O MELHOR informações do desenvolvedor altamente detalhadas (mensagens de rastreamento)
DESATIVADO desative o registro para todos os níveis (não capture nada)
TODOS ative o registro para todos os níveis (capture tudo)

Cada nível de log tem um valor inteiro que determina sua gravidade, exceto por dois níveis de log especiais OFF e ALL .

Registrando a mensagem


Por padrão, os três principais níveis de log são sempre registrados. Para definir um nível diferente, podemos usar o seguinte código:
logger.setLevel(Level.LogLevel);

// example
logger.setLevel(Level.FINE);

Neste exemplo, apenas o nível FINE e os níveis acima dele são configurados para serem registrados. Todas as outras mensagens de log são descartadas.

Agora para registrar uma mensagem, usamos o log() método.
logger.log(Level.LogLevel, "log message");

// example
logger.log(Level.INFO, "This is INFO log level message");

Existem métodos abreviados para registrar em níveis desejados.
logger.info( "This is INFO log level message");
logger.warning( "This is WARNING log level message");

Todas as solicitações de registro que passaram no nível de registro definido são encaminhadas para o LogRecord .

Observação: Se o nível de um registrador estiver definido como null , seu nível é herdado de seu pai e assim por diante na árvore.

2. Filtros




Um filtro (se estiver presente) determina se o LogRecord deve ser encaminhado ou não. Como o nome sugere, ele filtra as mensagens de log de acordo com critérios específicos.

Um Registro de Log só é passado do registrador para o manipulador de log e do manipulador de log para sistemas externos se passar nos critérios especificados.
// set a filter
logger.setFilter(filter);

// get a filter
Filter filter = logger.getFilter();

3. Manipuladores (Anexadores)


O manipulador de log ou os anexadores recebem o LogRecord e exporta para vários destinos.

O Java SE fornece 5 manipuladores integrados:
Manipuladores Usar
StreamHandler grava em um OutputStream
ConsoleHandler grava no console
FileHandler grava no arquivo
SocketHandler grava em portas TCP remotas
MemoryHandler grava na memória

Um manipulador pode passar o LogRecord a um filtro para determinar novamente se ele pode ser encaminhado para sistemas externos ou não.

Para adicionar um novo manipulador, usamos o seguinte código:
logger.addHandler(handler);

// example
Handler handler = new ConsoleHandler();
logger.addHandler(handler);

Para remover um manipulador, usamos o seguinte código:
logger.removeHandler(handler);

// example
Handler handler = new ConsoleHandler();
logger.addHandler(handler);
logger.removeHandler(handler);

Um registrador pode ter vários manipuladores. Para obter todos os manipuladores, usamos o seguinte código:
Handler[] handlers = logger.getHandlers();

4. Formatadores


Um manipulador também pode usar um Formatter para formatar o LogRecord objeto em uma string antes de exportá-lo para sistemas externos.

Java SE tem dois Formatters integrados :
Formatadores Usar
SimpleFormatter formatos Registro de log para encadear
XMLFormatter formatos Registro de log para formulário XML

Podemos usar o seguinte código para formatar um manipulador:
// formats to string form
handler.setFormatter(new SimpleFormatter());

// formats to XML form
handler.setFormatter(new XMLFormatter());

LogManager


O LogManager objeto mantém o controle das informações globais de log. Ele lê e mantém a configuração de log e as instâncias do registrador.

O gerenciador de log é um singleton, o que significa que apenas uma instância dele é instanciada.

Para obter a instância do gerenciador de log, usamos o seguinte código:
LogManager manager = new LogManager();

Vantagens do Logging


Aqui estão algumas das vantagens de fazer login em Java.
  • ajuda no monitoramento do fluxo do programa
  • ajuda a capturar quaisquer erros que possam ocorrer
  • fornece suporte para diagnóstico e depuração de problemas

Java

  1. Operadores Java
  2. Comentários Java
  3. Java para cada loop
  4. Strings Java
  5. Interface Java
  6. Classe anônima Java
  7. Java try-with-resources
  8. Anotações Java
  9. Asserções Java
  10. Vetor Java