1+ """
2+ * Explora el concepto de "logging" en tu lenguaje. Configúralo y muestra
3+ * un ejemplo con cada nivel de "severidad" disponible.
4+ """
5+
6+ import logging
7+
8+ # Logging configuration
9+ logging .basicConfig (level = logging .DEBUG ,
10+ filename = 'example.log' ,
11+ filemode = 'a' ,
12+ format = '%(asctime)s - %(levelname)s - %(message)s'
13+ )
14+
15+ # Examples of each level of severity
16+ logging .debug ('This is a DEBUG message' )
17+ logging .info ('This is a INFO message' )
18+ logging .warning ('This is a WARNING message' )
19+ logging .error ('This is a ERROR message' )
20+ logging .critical ('This is a CRITICAL message' )
21+
22+ """
23+ * DIFICULTAD EXTRA (opcional):
24+ * Crea un programa ficticio de gestión de tareas que permita añadir, eliminar
25+ * y listar dichas tareas.
26+ * - Añadir: recibe nombre y descripción.
27+ * - Eliminar: por nombre de la tarea.
28+ * Implementa diferentes mensajes de log que muestren información según la
29+ * tarea ejecutada (a tu elección).
30+ * Utiliza el log para visualizar el tiempo de ejecución de cada tarea.
31+ """
32+
33+ class Task :
34+ def __init__ (self , name , description , finalized = False , final_date = None ):
35+ self .name = name
36+ self .description = description
37+ self .finalized = finalized
38+ self .final_date = final_date
39+
40+
41+ class Task_manager ():
42+
43+ def __init__ (self ):
44+ self .tasks = [] # List to store tasks as dictionaries
45+
46+
47+ def add_task (self , task : Task ):
48+ self .tasks .append (
49+ {
50+ 'name' : task .name ,
51+ 'description' : task .description ,
52+ 'finalized' : task .finalized ,
53+ 'final_date' : task .final_date
54+ }
55+ )
56+ logging .info (f'Task added.' )
57+
58+
59+ def delete_task (self , name : str ):
60+ for task in self .tasks :
61+ if task ['name' ] == name :
62+ self .tasks .remove (task )
63+ logging .info (f'Task deleted.' )
64+ return
65+ logging .warning (f'Task was not fouded.' )
66+
67+
68+ def list_tasks (self ):
69+ for task in self .tasks :
70+ print (task )
71+
72+ def change_to_finalized (self , name : str ):
73+ for task in self .tasks :
74+ if task ['name' ] == name :
75+ task ['finalized' ] = True
76+ logging .info (f'Task finalized.' )
77+ return
78+ logging .warning (f'Task was not fouded.' )
79+
80+ task1 = Task ('Task1' , 'Description of task 1' )
81+ task2 = Task ('Task2' , 'Description of task 2' , final_date = '2024-06-23' )
82+
83+ task_manager = Task_manager ()
84+ task_manager .add_task (task1 )
85+ task_manager .add_task (task2 )
86+ task_manager .list_tasks ()
87+ task_manager .delete_task ('Task1' ) # Task deleted
88+ task_manager .list_tasks ()
89+ task_manager .delete_task ('Task3' ) # Task not found
90+ task_manager .change_to_finalized ('Task2' )
91+
92+ task_manager .list_tasks ()
0 commit comments