Sistema de Monitoramento - Logs
Este documento descreve a configuração e o uso do serviço de monitoramento por meio de logs para o projeto. O serviço é implementado usando a biblioteca logging
do Python, com suporte para rotação de arquivos de log e saída para o console.
Funcionalidade
A função setup_logger
é responsável por configurar e retornar um logger que pode ser usado em diferentes partes do projeto para registrar eventos e mensagens de depuração.
Características Principais
- Nível de Log: Configurado para capturar todos os níveis de log (
DEBUG
e superiores). - Formato de Log: As mensagens de log seguem o formato:
timestamp - logger_name - log_level - message.
- Rotação de Arquivos de Log: Logs são gravados em arquivos com rotação configurada para evitar crescimento ilimitado dos arquivos de log.
- Saída para Console: Logs são também exibidos no console para facilitar o monitoramento em tempo real.`
Detalhes da Implementação
Importações
import logging
from logging.handlers import RotatingFileHandler
import os
Função setup_logger
Parâmetros
name:
Nome do logger. Este nome é usado para identificar o logger e será incluído nas mensagens de log.
Funcionalidade
1. Criação do Logger:
logger = logging.getLogger(name):
Cria ou obtém um logger com o nome especificado.
logger.setLevel(logging.DEBUG):
Define o nível mínimo de log para DEBUG.
2. Formato do Log:
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s'):
Define o formato das mensagens de log.
3. Handler de Arquivo com Rotação:
log_file_path = os.path.join(os.path.dirname(__file__), 'log_files', f'{name}.log'):
Define o caminho do arquivo de log.
os.makedirs(os.path.dirname(log_file_path), exist_ok=True):
Cria o diretório para os arquivos de log, se não existir.
file_handler = RotatingFileHandler(log_file_path, maxBytes=10240, backupCount=3):
Configura o handler de arquivo com rotação. Os arquivos de log terão um tamanho máximo de 10 KB e até 3 backups serão mantidos.
file_handler.setFormatter(formatter):
Define o formato das mensagens de log para o handler de arquivo.
file_handler.setLevel(logging.DEBUG):
Define o nível mínimo de log para o handler de arquivo.
4. Handler de Console:
console_handler = logging.StreamHandler():
Cria um handler para saída no console.
console_handler.setFormatter(formatter):
Define o formato das mensagens de log para o handler de console.
console_handler.setLevel(logging.DEBUG):
Define o nível mínimo de log para o handler de console.
5. Adição dos Handlers ao Logger:
logger.addHandler(file_handler):
Adiciona o handler de arquivo ao logger.
logger.addHandler(console_handler):
Adiciona o handler de console ao logger.
6. Retorno
A função retorna o logger configurado.
Uso
Para usar o logger em diferentes partes do projeto, basta chamar a função setup_logger
com um nome apropriado e usar o logger retornado para registrar mensagens de log.
logger = setup_logger('meu_logger')
logger.debug('Esta é uma mensagem de depuração')
logger.info('Esta é uma mensagem de informação')
logger.warning('Esta é uma mensagem de aviso')
logger.error('Esta é uma mensagem de erro')
logger.critical('Esta é uma mensagem crítica')