|
| 1 | +' ╔══════════════════════════════════════╗ |
| 2 | +' ║ Autor: Kenys Alvarado ║ |
| 3 | +' ║ GitHub: https://github.com/Kenysdev ║ |
| 4 | +' ║ 2024 - VB.NET ║ |
| 5 | +' ╚══════════════════════════════════════╝ |
| 6 | +'----------------------------------------------- |
| 7 | +'* LOGS |
| 8 | +'----------------------------------------------- |
| 9 | +'Mas info: https://nlog-project.org/ |
| 10 | + |
| 11 | +Imports NLog |
| 12 | +Imports NLog.Config |
| 13 | +Imports NLog.Targets |
| 14 | + |
| 15 | +Module Program |
| 16 | + |
| 17 | + Private Logger As Logger = LogManager.GetCurrentClassLogger() |
| 18 | + |
| 19 | + Sub Main() |
| 20 | + '* EJERCICIO #1: |
| 21 | + '* Explora el concepto de "logging" en tu lenguaje. Configúralo y muestra |
| 22 | + '* un ejemplo con cada nivel de "severidad" disponible. |
| 23 | + |
| 24 | + ' Configuración manual |
| 25 | + Dim config As New LoggingConfiguration() |
| 26 | + |
| 27 | + ' Definir el destino del log) |
| 28 | + Dim consoleTarget As New ConsoleTarget("console") |
| 29 | + config.AddTarget("console", consoleTarget) |
| 30 | + |
| 31 | + ' Definir las reglas de log |
| 32 | + config.AddRuleForAllLevels(consoleTarget) |
| 33 | + |
| 34 | + ' Aplicar la configuración |
| 35 | + LogManager.Configuration = config |
| 36 | + |
| 37 | + ' Ejemplo de uso: |
| 38 | + Logger.Trace("msg Trace") |
| 39 | + Logger.Debug("msg Debug") |
| 40 | + Logger.Info("msg Info") |
| 41 | + Logger.Warn("msg Warn") |
| 42 | + Logger.Error("msg Error") |
| 43 | + Logger.Fatal("msg Fatal") |
| 44 | + |
| 45 | + '_________________________________________________ |
| 46 | + Console.WriteLine(vbLf & "EJERCICIO #2") |
| 47 | + Dim tasks As New ProgramTask() |
| 48 | + |
| 49 | + tasks.Add("a", "1") |
| 50 | + tasks.Add("b", "2") |
| 51 | + tasks.Add("c", "3") |
| 52 | + |
| 53 | + tasks.Delete("b") |
| 54 | + tasks.ShowList() |
| 55 | + |
| 56 | + End Sub |
| 57 | + |
| 58 | + '----------------------------------------------- |
| 59 | + '* EJERCICIO #2 |
| 60 | + '* Crea un programa ficticio de gestión de tareas que permita añadir, eliminar |
| 61 | + '* y listar dichas tareas. |
| 62 | + '* - Añadir: recibe nombre y descripción. |
| 63 | + '* - Eliminar: por nombre de la tarea. |
| 64 | + '* Implementa diferentes mensajes de log que muestren información según la |
| 65 | + '* tarea ejecutada (a tu elección). |
| 66 | + '* Utiliza el log para visualizar el tiempo de ejecución de cada tarea. |
| 67 | + |
| 68 | + Public Class ProgramTask |
| 69 | + Private Shared ReadOnly logger As Logger = LogManager.GetCurrentClassLogger() |
| 70 | + Private ReadOnly tasks As Dictionary(Of String, String) |
| 71 | + |
| 72 | + Public Sub New() |
| 73 | + tasks = New Dictionary(Of String, String)() |
| 74 | + logger.Debug("Se inició instancia de la clase ProgramTask.") |
| 75 | + End Sub |
| 76 | + |
| 77 | + Public Sub Add(name As String, description As String) |
| 78 | + tasks(name) = description |
| 79 | + logger.Info("Se agregó una tarea.") |
| 80 | + End Sub |
| 81 | + |
| 82 | + Public Sub Delete(name As String) |
| 83 | + If tasks.Remove(name) Then |
| 84 | + logger.Info($"Tarea '{name}' eliminada.") |
| 85 | + Else |
| 86 | + Console.WriteLine() |
| 87 | + logger.Warn($"No se encontró la tarea '{name}'.") |
| 88 | + End If |
| 89 | + End Sub |
| 90 | + |
| 91 | + Public Sub ShowList() |
| 92 | + logger.Info("Lista de tareas") |
| 93 | + For Each task In tasks |
| 94 | + Console.WriteLine($"{task.Key} -- {task.Value}") |
| 95 | + Next |
| 96 | + End Sub |
| 97 | + End Class |
| 98 | +End Module |
0 commit comments