DEV Community

Francisco Júnior
Francisco Júnior

Posted on

1

Introdução à Biblioteca logging em Python

O módulo logging é parte da biblioteca padrão do Python e fornece um sistema de registro flexível e poderoso. Ele permite a gravação de mensagens para diferentes destinos, como a saída do console, arquivos de log, sockets, entre outros.

Níveis de Log

A biblioteca logging oferece vários níveis de registro para categorizar mensagens de acordo com sua importância:

  • DEBUG: Mensagens detalhadas usadas para diagnóstico.
  • INFO: Mensagens que confirmam o funcionamento adequado do aplicativo.
  • WARNING: Indica situações potencialmente problemáticas.
  • ERROR: Mensagens de erro que indicam problemas.
  • CRITICAL: Mensagens que indicam falhas graves que podem levar ao término do programa.

Funcionalidades Principais

Configuração do Sistema de Log

A configuração do sistema de log é essencial para direcionar as mensagens para diferentes saídas, definir o nível de log e o formato das mensagens.

import logging

logging.basicConfig(filename='app.log', level=logging.DEBUG, format='%(asctime)s - %(name)s - %(levelname)s - %(message)s')
Enter fullscreen mode Exit fullscreen mode

Registro de Mensagens

Registrar mensagens é simples e flexível, permitindo o uso dos diferentes níveis de log.

import logging

logging.debug('Esta é uma mensagem de depuração.')
logging.info('Esta é uma mensagem informativa.')
logging.warning('Esta é uma mensagem de aviso.')
logging.error('Esta é uma mensagem de erro.')
logging.critical('Esta é uma mensagem crítica.')
Enter fullscreen mode Exit fullscreen mode

Personalização do Logger

A personalização do logger permite criar instâncias específicas de log para diferentes partes do aplicativo.

import logging

logger = logging.getLogger('meu_logger')
logger.setLevel(logging.DEBUG)
Enter fullscreen mode Exit fullscreen mode

Saída de Log em Arquivos

Registrar mensagens em arquivos é uma prática comum para preservar um histórico de execução do aplicativo.

import logging

file_handler = logging.FileHandler('app.log')
file_handler.setLevel(logging.INFO)
file_handler.setFormatter(logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s'))

logger = logging.getLogger('meu_logger')
logger.addHandler(file_handler)
Enter fullscreen mode Exit fullscreen mode

Exemplos de Uso

Configuração Básica de Log

import logging

logging.basicConfig(filename='app.log', level=logging.DEBUG, format='%(asctime)s - %(name)s - %(levelname)s - %(message)s')

logging.debug('Mensagem de depuração.')
logging.info('Mensagem informativa.')
logging.warning('Mensagem de aviso.')
logging.error('Mensagem de erro.')
logging.critical('Mensagem crítica.')
Enter fullscreen mode Exit fullscreen mode

Registro em Arquivo com Logger Personalizado

import logging

file_handler = logging.FileHandler('app.log')
file_handler.setLevel(logging.INFO)
file_handler.setFormatter(logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s'))

logger = logging.getLogger('meu_logger')
logger.addHandler(file_handler)

logger.debug('Mensagem de depuração.')
logger.info('Mensagem informativa.')
logger.warning('Mensagem de aviso.')
logger.error('Mensagem de erro.')
logger.critical('Mensagem crítica.')
Enter fullscreen mode Exit fullscreen mode

Conclusão

A biblioteca logging é uma ferramenta poderosa para registrar informações em aplicativos Python, fornecendo uma variedade de opções para personalizar o sistema de log. Isso permite a análise e diagnóstico de problemas, facilitando a manutenção e melhoria contínua dos aplicativos. Seja para depurar, monitorar ou registrar informações críticas, a biblioteca logging é uma aliada essencial para desenvolvedores Python.

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more

Top comments (0)

Heroku

Build apps, not infrastructure.

Dealing with servers, hardware, and infrastructure can take up your valuable time. Discover the benefits of Heroku, the PaaS of choice for developers since 2007.

Visit Site

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay