Curso-lenguaje-python/catch-all/06_bots_telegram/03_translator_bot/logger.py

64 lines
1.8 KiB
Python

"""
# Ejemplo de uso del logger
if __name__ == "__main__":
logger.info('Logger configurado correctamente.')
logger.debug('Este es un mensaje de depuración.')
logger.warning('Este es un mensaje de advertencia.')
logger.error('Este es un mensaje de error.')
logger.critical('Este es un mensaje crítico.')
"""
# logger.py
# Este módulo configura el logging con rotación de archivos.
import logging
import os
from logging.handlers import RotatingFileHandler
def setup_logger():
# Crear el directorio de logs si no existe
log_directory = 'logs'
if not os.path.exists(log_directory):
os.makedirs(log_directory)
# Ruta del archivo de log
log_file = os.path.join(log_directory, 'bot.log')
# Formato de los mensajes de log
log_formatter = logging.Formatter(
'%(asctime)s - %(name)s - %(levelname)s - %(message)s')
# Configurar RotatingFileHandler
# maxBytes: tamaño máximo del archivo de log en bytes (5MB en este caso)
# backupCount: número máximo de archivos de respaldo
file_handler = RotatingFileHandler(
log_file, maxBytes=5*1024*1024, backupCount=5)
file_handler.setFormatter(log_formatter)
file_handler.setLevel(logging.INFO)
# Configurar StreamHandler para la consola
console_handler = logging.StreamHandler()
console_handler.setFormatter(log_formatter)
# Puedes cambiar este nivel según tus necesidades
console_handler.setLevel(logging.DEBUG)
# Configurar el logger
logger = logging.getLogger('telegram_bot')
# Configurar el nivel del logger a DEBUG para capturar todos los mensajes
logger.setLevel(logging.DEBUG)
logger.addHandler(file_handler)
logger.addHandler(console_handler)
# Evitar que los mensajes se dupliquen en el log
logger.propagate = False
return logger
# Inicializar el logger
logger = setup_logger()