Registro en aplicaciones C#: mejores prácticas para principiantes

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Introducción: ¿Por qué es importante el registro?

\n\n

Imagina que tu aplicación en C# está funcionando en producción. De repente, los usuarios reportan un error, pero no puedes entender qué salió mal. Sin registros, eres como un piloto sin instrumentos. El registro es el proceso de registrar información sobre el funcionamiento de la aplicación: errores, advertencias, mensajes de depuración y eventos clave.

\n\n

En este artículo, analizaremos las mejores prácticas de registro para desarrolladores principiantes en C# (.NET). Aprenderás cómo configurar el registro, qué herramientas usar y cómo evitar errores típicos.

\n\n

1. Elección de la herramienta de registro en C#

\n\n

En el ecosistema .NET existen varias bibliotecas populares para el registro. Para principiantes, recomendamos tres opciones principales:

\n\n

1.1. ILogger integrado (Microsoft.Extensions.Logging)

\n\n

A partir de .NET Core, Microsoft proporciona la interfaz integrada ILogger. Es simple de usar y no requiere instalar bibliotecas de terceros.

\n\n
using Microsoft.Extensions.Logging;\n\npublic class OrderService\n{\n    private readonly ILogger<OrderService> _logger;\n\n    public OrderService(ILogger<OrderService> logger)\n    {\n        _logger = logger;\n    }\n\n    public void ProcessOrder(int orderId)\n    {\n        _logger.LogInformation("Procesando pedido {OrderId}", orderId);\n        // Lógica de procesamiento\n    }\n}
\n\n

1.2. Serilog — flexible y potente

\n\n

Serilog es una de las bibliotecas más populares. Admite registro estructurado, lo que facilita el análisis de datos. Instalación a través de NuGet: Install-Package Serilog.AspNetCore

\n\n
using Serilog;\n\npublic class Program\n{\n    public static void Main(string[] args)\n    {\n        Log.Logger = new LoggerConfiguration()\n            .MinimumLevel.Debug()\n            .WriteTo.Console()\n            .WriteTo.File("logs/app.log", rollingInterval: RollingInterval.Day)\n            .CreateLogger();\n\n        try\n        {\n            Log.Information("Aplicación iniciada");\n            CreateHostBuilder(args).Build().Run();\n        }\n        catch (Exception ex)\n        {\n            Log.Fatal(ex, "La aplicación finalizó con un error");\n        }\n        finally\n        {\n            Log.CloseAndFlush();\n        }\n    }\n}
\n\n

1.3. NLog — la opción clásica

\n\n

NLog es otra biblioteca madura con amplias capacidades de configuración a través de archivos de configuración.

\n\n
// Configuración a través de appsettings.json\n{\n  "NLog": {\n    "targets": {\n      "console": {\n        "type": "Console",\n        "layout": "${longdate}|${level:uppercase=true}|${message}"\n      },\n      "file": {\n        "type": "File",\n        "fileName": "logs/app.log",\n        "layout": "${longdate}|${level:uppercase=true}|${message}"\n      }\n    },\n    "rules": [\n      { "logger": "*", "minLevel": "Info", "writeTo": "console,file" }\n    ]\n  }\n}
\n\n

2. Niveles de registro: cuándo usar cada uno

\n\n

El uso correcto de los niveles de registro es la base de una buena práctica. En C# (.NET) se definen los siguientes niveles (del más crítico al menos crítico):

\n\n
    \n
  • Trace (0) — información de depuración extremadamente detallada. Se usa solo para diagnóstico profundo.
  • \n
  • Debug (1) — mensajes de depuración para desarrolladores. Se activa en el entorno de desarrollo, pero se desactiva en producción.
  • \n
  • Information (2) — mensajes informativos generales sobre el funcionamiento de la aplicación (inicio, operaciones exitosas).
  • \n
  • Warning (3) — advertencias sobre problemas potenciales que no son errores (por ejemplo, tiempo de ejecución excedido).
  • \n
  • Error (4) — errores que requieren atención, pero no son fatales para la aplicación.
  • \n
  • Critical (5) — errores críticos, después de los cuales la aplicación

Blogs

Book Recommendations