logo text wide cropped

Logzero é um pacote Python criado por Chris Hager que simplifica o log com Python 2 e 3. O Logzero facilita como declaração de impressão mostrar informações e detalhes de depuração.

Se você está se perguntando o que é registro, Recomendo que você leia o artigo anterior que escrevi sobre “Como executar experiências de aprendizado de máquina com o módulo de registro Python”, especialmente as três primeiras seções.

Nesse artigo, você aprenderá:

  • O que é Log?
  • Por que o log é importante.
  • Aplicações de registro em diferentes indústrias de tecnologia.

O Logzero possui recursos diferentes que facilitam o uso em projetos Python. Alguns desses recursos são:

  • Registro fácil no console e / ou arquivo.
  • Fornece um objeto logger padrão do Python totalmente configurado.
  • Formatação bonita, incluindo níveis específicos cores no console.
  • funciona com todos os tipos de codificação de caracteres e caracteres especiais.
  • Compatível com Python 2 e 3.
  • Não há mais dependências do Python.

Instalação

Para instalar o logzero com pip, execute o seguinte:

pip install -U logzero

Você também pode instalar o logzero do público Repo do Github:

git clone https://github.com/metachris/logzero.gitcd logzeropython setup.py install

Exemplo básico

Vamos começar com um exemplo básico. No arquivo python, importaremos o logger do logzero e tentaremos 4 exemplos diferentes de nível de log.

#import logger from logzerofrom logzero import loggerlogger.debug("hello")logger.info("info")logger.warning("warning")logger.error("error")

A saída é colorida, facilitando a leitura.

dfdfdf
saída logzero

Como você pode ver, cada nível tem sua própria cor. Isso significa que você pode identificar o nível facilmente verificando a cor.

Gravar logs em um arquivo

Na maioria das vezes, os usuários do Python tendem a gravar logs no arquivo. Quando o sistema está em execução, você pode salvar os logs no arquivo e revê-los para verificações de erros e fins de manutenção. Você também pode definir um arquivo para salvar todas as entradas de log no legzero.

Importaremos o logger e o arquivo de log do logezero. O método logfile nos ajudará a configurar o arquivo de log para salvar nossas entradas de log.

Agora suas entradas de log serão registradas no arquivo chamado my_logfile.log.

#import logger and logfilefrom logzero import logger, logfile#set logfile pathlogfile('my_logfile.log')# Log messageslogger.info("This log message saved in the log file")

A saída no my_logfile.log contém o rótulo do nível de log (para o nível de informações rotulado como “I”), data, hora, nome do arquivo python, número da linha e a própria mensagem.

[I 200409 23:49:59 demo:8] This log message saved in the log file

Girando um arquivo de log

Você não precisa ter um único arquivo de log salvando todas as entradas de log. Isso resulta em um arquivo de log massivo, intenso para o sistema abrir e fechar.

Você pode usar o maxBytes e backupCount parâmetros para permitir que o arquivo role sobre um tamanho predeterminado. Quando o tamanho está prestes a ser excedido, o arquivo é fechado e um novo arquivo é aberto silenciosamente para saída. A substituição ocorre sempre que o arquivo de log atual tem quase maxBytes de comprimento. Se maxBytes ou backupCount for zero, a substituição nunca ocorrerá.

No exemplo abaixo, definimos maxBytes como 1000000 bytes (1 MB). Isso significa que quando o tamanho excede 1 MB, o arquivo é fechado e um novo arquivo é aberto para salvar as entradas do log. O número de backups a serem mantidos é definido como 3.

# Set a rotating logfilelogzero.logfile("my_logfile.log", maxBytes=1000000, backupCount=3)

Definir um nível mínimo de log

Foto de Son Nguyen Kim

O nível de log significa definir o nível de importância de uma determinada mensagem de log. Você também pode definir um nível de log para o manipulador de arquivos usando o argumento loglevel no método logfile.

No exemplo abaixo, configuramos o nível de log como warning. Isso significa que todas as entradas de log abaixo do nível de aviso não será salvo em um arquivo de log.

#import logzero packagefrom logzero import logger, logfileimport logging# You can also set a different loglevel for the file handlerlogfile("my_logfile.log", loglevel=logging.WARNING)# Log messageslogger.info("This log message saved in the log file")logger.warning("This log message saved in the log file")

Definir um formatador personalizado

A decisão de como você deseja que o registro seja formatado é sua. Existem diferentes maneiras de formatar seu registro de log. Você pode incluir a data, hora e nível de registro em seu formato para saber quando o registro foi enviado e em que nível.

O exemplo abaixo mostra como você pode configurar o formato dos registros de log.

#import logzero packageimport logzerofrom logzero import logger, logfileimport logging#set file pathlogfile("my_logfile.log")# Set a custom formattermy_formatter = logging.Formatter('%(filename)s - %(asctime)s - %(levelname)s: %(message)s');logzero.formatter(my_formatter)# Log messageslogger.info("This log message saved in the log file")logger.warning("This log message saved in the log file")

No exemplo acima, configuramos o formato do log incluindo nome do arquivo, data, hora, nome do nível de log, e mensagem.

Esta é a saída no my_logfile.log:

demo.py - 2020–04–10 00:51:44,706 - INFO: This log message saved in the log filedemo.py - 2020–04–10 00:51:44,707 - WARNING: This log message saved in the log file

Instâncias personalizadas do criador de logs

Em vez de usar o criador de logs padrão, você também pode configurar instâncias específicas do criador de logs com logzero.setup_logger (..). Você pode configurar e retornar uma instância do criador de logs totalmente configurada com diferentes parâmetros, como nome, nome do arquivo de log, formatador, maxBytes, backupCount, e nível de log.

Este é um exemplo prático de como configurar o log com uma instância do criador de logs personalizado:

import logzero packagefrom logzero import logger, logfile, setup_loggerimport logging# Set a custom formattermy_formatter = logging.Formatter('%(filename)s - %(asctime)s - %(levelname)s: %(message)s');#create custom logger instancecustom_logger = setup_logger( name="My Custom Logger", logfile="my_logfile.log", formatter=my_formatter, maxBytes=1000000, backupCount=3,level=logging.INFO)# Log messagescustom_logger.info("This log message saved in the log file")custom_logger.warning("This log message saved in the log file")

No exemplo acima, definimos uma instância do criador de logs chamada custom_logger com diferentes valores de parâmetros configurados.

Embrulhar

Neste artigo, você aprendeu o básico, juntamente com alguns exemplos, de como usar o pacote Logezero Python. Você pode aprender mais sobre os recursos disponíveis no documentação. Agora você pode começar a implementar o pacote logzero em sua próxima projeto python.

Se você aprendeu algo novo ou gostou de ler este artigo, compartilhe-o para que outros possam vê-lo. Até lá, até o próximo post! Também posso ser encontrado no Twitter @Davis_McDavid