From f29b75d28a4da902440ed6fda77509c4db963267 Mon Sep 17 00:00:00 2001 From: imunnic Date: Thu, 20 Mar 2025 10:22:45 +0100 Subject: [PATCH] logging de schedule --- app/main.py | 29 ++++++++++++++++++++--------- 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/app/main.py b/app/main.py index 4d2188d..e302fb8 100644 --- a/app/main.py +++ b/app/main.py @@ -7,6 +7,14 @@ from apscheduler.triggers.cron import CronTrigger from webscrapper import search_from_keywords_file, search_indice import csv from datetime import datetime, time +import logging + +LOG_FILE = "app.log" +logging.basicConfig( + filename=LOG_FILE, # Archivo de logs + level=logging.INFO, # Nivel de logging (DEBUG, INFO, WARNING, ERROR, CRITICAL) + format="%(asctime)s - %(levelname)s - %(message)s", # Formato de los logs +) # Crear las tablas en MySQL si no existen Base.metadata.create_all(bind=engine) @@ -21,38 +29,41 @@ scheduler.add_job(search_from_keywords_file, "cron", hour=18, minute=0) # Ejecu def cargar_tareas_desde_csv(indices): """Lee el CSV y agrega tareas al scheduler""" + logging.info("📌 Cargando tareas desde CSV...") try: with open(indices, mode='r', encoding='utf-8') as file: reader = csv.reader(file, delimiter=';') - + for row in reader: - if len(row) < 4: # Verifica que haya suficientes columnas - print(f"❌ Línea incorrecta en CSV: {row}") + logging.info(f"📌 Leyendo fila: {row}") + if len(row) < 4: + logging.warning(f"❌ Línea incorrecta en CSV: {row}") continue - url, nombre, horaInicio, horaFin = row # Extrae los valores + url, nombre, horaInicio, horaFin = row try: horaInicio = datetime.strptime(horaInicio.strip(), "%H:%M").time() horaFin = datetime.strptime(horaFin.strip(), "%H:%M").time() except ValueError: - print(f"❌ Formato de hora incorrecto en línea: {row}") + logging.error(f"❌ Formato de hora incorrecto en línea: {row}") continue obj = {"url": url.strip(), "nombre": nombre.strip(), "horaInicio": horaInicio, "horaFin": horaFin} - # Programar ejecución solo dentro del rango de horas permitido - for hora in range(horaInicio.hour, horaFin.hour + 1): + # Agregar tareas para cada hora en el rango + for hora in range(horaInicio.hour, horaFin.hour + 1): scheduler.add_job( search_indice, trigger=CronTrigger(hour=hora, minute=0), args=[obj] ) + logging.info(f"✅ Tarea agregada para {nombre} a las {hora}:00") - print("✅ Tareas programadas correctamente.") + logging.info("✅ Todas las tareas fueron programadas.") except Exception as e: - print(f"❌ Error al leer el archivo CSV: {e}") + logging.error(f"❌ Error al leer el archivo CSV: {e}") @asynccontextmanager