No artigo anterior vimos como podemos gerar mensagens de erro, aviso e informativas do sistema. Agora, iremos aprofundar um pouco mais nesse assunto e iremos entender o que são os Handlers.
Os principais Handlers são:
- StreamHandler: Retorna a mensagem/log no terminal;
- FileHandler: Envia o log para um arquivo definido pelo desenvolvedor;
- NullHandler: não faz nenhuma formatação ou saída. É essencialmente um manipulador no-op (sem operação).
Na documentação oficial podemos contar um numero maior de Handlers, mas nesse artigo iremos usar apenas o StreamHandler e o FileHandler.
Vamos começar criando nosso arquivo .py, no meu caso irá se chamar app.py, mas pode atribuir o nome que desejar. Após isso, iremos começar a escrever o nosso codigo...
# Comece importando o módulo logging
import logging
Agora, vamos definir nossa instancia do objeto getLogger() e o nivel de nosso log (nesse caso iremos definir o nivel de DEBUG).
logger = logging.getLogger()
logger.setLevel(logging.DEBUG)
Vamos então definir as propriedades do nosso handler:
# Vamos começar testando o FileHandler
# O nome do nosso arquivo de log será LOG.log
fh = logging.FileHandler('LOG.log')
# Definindo o level do nosso handler
# Nesse caso, também será DEBUG
fh.setLevel(logging.DEBUG)
Após definirmos as propriedades, de fato iremos criar o nosso handler:
logger.addHandler(fh)
Por fim, vamos criar uma simples saida de texto para o nosso logger:
logger.debug('Olá, sou a mensagem de log dentro do seu arquivo.')
Execute usando o script:
sh python app.py
Depois de executar o codigo, olhe na raiz da pasta que agora terá um arquivo com o nome LOG.lg contendo o seguinte conteúdo:
Agora, iremos testar o modo StreamHandler. Para isso iremos mudar apenas uma linha do codigo:
# de
fh = logging.FileHandler('LOG.log')
# para
fh = logging.StreamHandler()
O restante do código pode manter da forma como estava. Se preferir, pode apagar o arquivo LOG.log para perceber que utilizando o StreamHandler o arquivo não será criado.
Rode no terminal:
sh python app.py
O seu retorno será no próprio terminal:
O modo StreamHandler é usado, especialmente, para que os desenvolvedores tenham um retorno visual mais rapido, é comum o StreamHandler ser usado juntamente ao FileHandler.
Concluindo
Você tem varios manipuladores de logs disponives, hoje utilizamos os mais comuns, pois a usabilidade é, basicamente, a mesma, só muda a forma como você irá aplicar em seu ambiente.
Top comments (1)
Conteúdo massa! me ajudou demais!