CM.Logger
1.0.1
See the version list below for details.
dotnet add package CM.Logger --version 1.0.1
NuGet\Install-Package CM.Logger -Version 1.0.1
<PackageReference Include="CM.Logger" Version="1.0.1" />
<PackageVersion Include="CM.Logger" Version="1.0.1" />
<PackageReference Include="CM.Logger" />
paket add CM.Logger --version 1.0.1
#r "nuget: CM.Logger, 1.0.1"
#:package CM.Logger@1.0.1
#addin nuget:?package=CM.Logger&version=1.0.1
#tool nuget:?package=CM.Logger&version=1.0.1
CM.Logging
CM.Logging es una biblioteca ligera y reutilizable para el registro centralizado de logs en SQL Server, diseñada para aplicaciones .NET tanto legacy (ASP.NET) como modernas (ASP.NET Core).
Permite capturar eventos, errores y excepciones de forma estructurada mediante stored procedures, facilitando el monitoreo y diagnóstico en entornos productivos.
🚀 Características
Registro de logs en SQL Server
Soporte para:
- ASP.NET (Framework)
- ASP.NET Core
- Consola / Servicios
Niveles de logging:
- Info
- Warning
- Error
- Debug
- Fatal
Registro de excepciones completo:
- Mensaje
- StackTrace
- Detalle
Configuración centralizada
Extensible mediante Context Providers
Compatible con .NET Standard 2.0
📦 Instalación
Desde NuGet:
Install-Package CM.Logging
o con .NET CLI:
dotnet add package CM.Logging
⚙️ Configuración básica
Antes de usar el logger, debes configurarlo:
using CM.Logging.Models;
using CM.Logging.Static;
AppLogger.Configure(new LoggingOptions
{
ConnectionString = "Server=.;Database=TuBase;Trusted_Connection=True;Encrypt=True;TrustServerCertificate=True;",
ApplicationName = "MiAplicacion",
EnvironmentName = "DEV",
ServerName = Environment.MachineName,
VersionApp = "1.0.0",
DefaultOrigen = "APP",
CaptureMachineName = true,
CaptureEnvironmentUserName = true,
ThrowExceptions = true
});
🧪 Uso básico
Log informativo
AppLogger.LogInfo("Aplicación iniciada", "Program", "Main");
Warning
AppLogger.LogWarning("Advertencia detectada", "ModuloX", "MetodoY");
Error
AppLogger.LogError("Ocurrió un error", "ModuloX", "MetodoY");
Debug
AppLogger.LogDebug("Mensaje de depuración");
Fatal
AppLogger.LogFatal("Error crítico");
❗ Manejo de excepciones
try
{
// Código que puede fallar
}
catch (Exception ex)
{
AppLogger.LogException(ex, "Error al procesar la operación", "Servicio", "Metodo");
}
🗄️ Base de datos
El logger utiliza un Stored Procedure para insertar registros.
Ejemplo esperado:
CREATE PROCEDURE SP_INSERT_LOG
(
@Nivel NVARCHAR(20),
@Mensaje NVARCHAR(MAX),
@Detalle NVARCHAR(MAX),
@Excepcion NVARCHAR(MAX),
@StackTrace NVARCHAR(MAX),
@Modulo NVARCHAR(100),
@Metodo NVARCHAR(100),
@Clase NVARCHAR(200),
@Usuario NVARCHAR(100),
@Fecha DATETIME
)
AS
BEGIN
INSERT INTO Logs (...)
VALUES (...)
END
🧠 Contexto automático
El logger soporta enriquecimiento automático mediante ILogContextProvider.
Por defecto incluye:
- Usuario del sistema
- Nombre de la máquina
- Origen de la aplicación
🏗️ Arquitectura
La librería sigue un diseño desacoplado:
CM.Logging
│
├── Models
├── Abstractions
├── Services
├── Infrastructure
│ ├── Sql
│ └── Context
└── Static (AppLogger)
🔒 Seguridad
- No almacena credenciales sensibles automáticamente
- Depende de tu implementación del SP
- Compatible con conexiones cifradas (
Encrypt=True)
📄 Licencia
Este proyecto está bajo la licencia MIT.
👨💻 Autor
Desarrollado por CM Roger Santos. CodeRS en GitHub.
💡 Recomendaciones
- Usar
TrustServerCertificate=Trueen desarrollo - Configurar certificados válidos en producción
- Centralizar logs para monitoreo (ej. dashboards futuros)
--
⭐ Contribuciones
Actualmente enfocado a uso interno
📞 Soporte
Para dudas o mejoras, contactar al equipo de desarrollo. ClinicadeMerida RogerSantos
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- Microsoft.Data.SqlClient (>= 5.2.0)
- System.Data.SqlClient (>= 4.9.1)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on CM.Logger:
| Package | Downloads |
|---|---|
|
CM.Logging.AspNetCore
Integración de CM.Logger para ASP.NET Core con soporte de contexto HTTP y middleware. |
GitHub repositories
This package is not used by any popular GitHub repositories.
Versión inicial:
- Logging a SQL Server mediante stored procedure
- Soporte base para ASP.NET y ASP.NET Core
- Logger estático y servicio reusable
- Context provider por defecto