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