1+ ###############################################################################
2+ ### EJERCICIO
3+ ###############################################################################
4+ import logging
5+ from datetime import datetime
6+
7+ # Configuracion basica de un logginf
8+ logging .basicConfig (
9+ #filename='my_log.log', # Nombre del archivo de log, si no lo especificas se mostrara por consola
10+ filemode = 'w' , # Modo fe apertura del archivo
11+ format = '%(asctime)s - %(name)s - %(levelname)s - %(message)s' , #Formato del mesaje
12+ datefmt = '%d/%m/%Y %H:%M:%S' , # Formato de la fecha
13+ level = logging .DEBUG # Nivel de severidad minimo
14+ )
15+
16+
17+ # Uso del logging
18+
19+ logging .debug ('Esto es un mensaje de depuración' )
20+ logging .info ('Esto es un mensaje informativo' )
21+ logging .warning ('Esto es una advertencia' )
22+ logging .error ('Esto es un mensaje de error' )
23+ logging .critical ('Esto es un mensaje crítico' )
24+ # Para separar los ejerccios en la consola
25+ print ()
26+ print ()
27+ print ()
28+ ###############################################################################
29+ ### DIFICULTAD EXTRA
30+ ###############################################################################
31+ class TaskManagement ():
32+ """
33+ Programa de gestion de tareas
34+ """
35+ def __init__ (self ):
36+ self .tasks = {}
37+ logging .info ("Inicialización del programa de gestión de tareas" )
38+
39+ def add_task (self , name : str , description : str ):
40+ start_time = datetime .now ()
41+ if name in self .tasks :
42+ logging .warning (f"La tarea '{ name } ' ya existe. No se puede agregar de nuevo." )
43+ return
44+ self .tasks [name ] = description
45+ logging .info (f"Tarea '{ name } ' añadida con éxito." )
46+ logging .debug (f"Descripción: { description } " )
47+ end_time = datetime .now ()
48+ logging .info (f"Tiempo de ejecución para añadir tarea: { end_time - start_time } " )
49+
50+ def delete_task (self , name : str ):
51+ start_time = datetime .now ()
52+ if name not in self .tasks :
53+ logging .error (f"La tarea '{ name } ' no existe. No se puede eliminar." )
54+ return
55+ del self .tasks [name ]
56+ logging .info (f"Tarea '{ name } ' eliminada con éxito." )
57+ end_time = datetime .now ()
58+ logging .info (f"Tiempo de ejecución para eliminar tarea: { end_time - start_time } " )
59+
60+ def __str__ (self ):
61+ print ("\n LISTA DE TAREAS: " )
62+ return "\n " .join ([f"{ name } : { desc } " for name , desc in self .tasks .items ()])
63+
64+
65+ # Probando el codigo
66+ mis_tareas = TaskManagement ()
67+ mis_tareas .add_task ('Tarea_1' , 'Limpiar el polvo' )
68+ mis_tareas .add_task ('Tarea_2' , 'Limpiar los baños' )
69+ mis_tareas .add_task ('Tarea_2' , 'Limpiar los baños' )
70+ print (mis_tareas )
71+ mis_tareas .delete_task ('Tarea_1' )
72+ mis_tareas .add_task ('Tarea_3' , 'Limpiar la cocina' )
73+ print (mis_tareas )
74+ mis_tareas .delete_task ('Tarea_4' )
0 commit comments