Como vimos en la entrega anterior, el proyecto NLog es una alternativa a Serilog.
"NLog es una plataforma de registro flexible y gratuita para diversas plataformas .NET, incluyendo .NET Standard. NLog facilita la escritura en múltiples destinos (consola, archivo, base de datos, etc.) y permite modificar la configuración de registro sobre la marcha".
Iniciando con NLog
1. Creamos un proyecto con dotnet:
$ dotnet new console -n DemoNLog $ cd DemoNLog
2. Agregamos el paquete NLog en el archivo ``DemoNLog.csproj``:
<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>net10.0</TargetFramework> <ImplicitUsings>enable</ImplicitUsings> <Nullable>enable</Nullable> </PropertyGroup> <ItemGroup> <PackageReference Include="NLog" Version="6.1.1" /> <None Update="NLog.config"> <CopyToOutputDirectory>Always</CopyToOutputDirectory> </None> </ItemGroup> </Project>
En este archivo XML agregamos el paquete NLog y especificamos la versión compatible a .Net 10.
También lo podemos hacer desde la terminal:
$ dotnet add package NLog --version 6.1.1
3. Creamos y configuramos el archivo ``NLog.config``:
<?xml version="1.0" encoding="utf-8" ?> <nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <!-- Definir los targets --> <targets> <!-- Log en consola --> <target xsi:type="Console" name="console" layout="${longdate} | ${level:uppercase=true} | ${message}" /> <!-- Log en archivo --> <target xsi:type="File" name="file" fileName="C:\\Users\\HP\\Documents\\pruebasCSharp\\pruebasNLog\\DemoNLog\\logfile.txt" layout="${longdate} | ${level:uppercase=true} | ${message} ${exception}" /> </targets> <!-- Definir las reglas --> <rules> <!-- Todos los niveles a consola --> <logger name="*" minlevel="Debug" writeTo="console" /> <!-- Solo Info y superior a archivo --> <logger name="*" minlevel="Info" writeTo="file" /> </rules> </nlog>
En este archivo configuramos el archivo y la ruta de la salida. Además los niveles de loggers. Similar a lo que se hace en Java (log4j).
4. Modificamos el programa principal ``Program.cs``
using NLog; class Program { private static readonly Logger logger = LogManager.GetCurrentClassLogger(); static void Main(string[] args) { LogManager.Setup().LoadConfigurationFromFile(); logger.Info("Aplicación iniciada"); logger.Debug("Este es un mensaje de depuración"); logger.Error("Ocurrió un error simulado"); LogManager.Shutdown(); } }
En el programa importamos el paquete NLog y cargamos la configuración del archivo NLog.config. El programa solo mostrará algunos mensajes con los niveles Info, Debug y Error.
5. Construimos y ejecutamos la aplicación:
$ dotnet build $ dotnet run
Salida:
2026-03-16 12:10:36.3512 | INFO | Aplicación iniciada 2026-03-16 12:10:36.4258 | DEBUG | Este es un mensaje de depuración 2026-03-16 12:10:36.4258 | ERROR | Ocurrió un error simulado
Como se puede observar es similar a lo que se hizo con el paquete Serilog. Aunque tiene algunos detalles como la configuración del archivo XML.
¡Hemos creado nuestro primer programa usando NLog!
Serilog es recomendable para proyectos modernos como microservicios y aplicaciones Cloud.
NLog está más enfocado en proyectos legados, aunque es una aletrnativa a Serilog.
Continuaremos con esta serie sobre C# en próximas entregas.
Enlaces:
https://nlog-project.org/https://www.nuget.org/

No hay comentarios:
Publicar un comentario