39 lines
1.3 KiB
Python
39 lines
1.3 KiB
Python
import logging
|
|
import os
|
|
import sys
|
|
|
|
def setup_logger():
|
|
# Obtener la ruta del ejecutable o del script
|
|
if getattr(sys, 'frozen', False):
|
|
# Si es un ejecutable generado por PyInstaller
|
|
application_path = os.path.dirname(sys.executable)
|
|
else:
|
|
# Si es el script de Python normal
|
|
application_path = os.path.dirname(os.path.abspath(__file__))
|
|
|
|
log_file = os.path.join(application_path, "debug_sync.log")
|
|
|
|
# Crear el logger
|
|
logger = logging.getLogger("SCAII_Sync")
|
|
logger.setLevel(logging.DEBUG)
|
|
|
|
# Evitar duplicados si se llama varias veces
|
|
if not logger.handlers:
|
|
# Formato: [2024-05-06 10:00:00] [INFO] Mensaje
|
|
formatter = logging.Formatter('[%(asctime)s] [%(levelname)s] [%(name)s] %(message)s', datefmt='%Y-%m-%d %H:%M:%S')
|
|
|
|
# Handler para archivo (modo 'a' para anexar, 'w' para sobrescribir en cada inicio)
|
|
file_handler = logging.FileHandler(log_file, mode='w', encoding='utf-8')
|
|
file_handler.setFormatter(formatter)
|
|
logger.addHandler(file_handler)
|
|
|
|
# Handler para consola
|
|
console_handler = logging.StreamHandler()
|
|
console_handler.setFormatter(formatter)
|
|
logger.addHandler(console_handler)
|
|
|
|
return logger
|
|
|
|
# Instancia global para importar en otros archivos
|
|
log = setup_logger()
|