KennyMolina.Logging.Test 0.0.1

Additional Details

no sirve

The owner has unlisted this package. This could mean that the package is deprecated, has security vulnerabilities or shouldn't be used anymore.
dotnet add package KennyMolina.Logging.Test --version 0.0.1
                    
NuGet\Install-Package KennyMolina.Logging.Test -Version 0.0.1
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="KennyMolina.Logging.Test" Version="0.0.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="KennyMolina.Logging.Test" Version="0.0.1" />
                    
Directory.Packages.props
<PackageReference Include="KennyMolina.Logging.Test" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add KennyMolina.Logging.Test --version 0.0.1
                    
#r "nuget: KennyMolina.Logging.Test, 0.0.1"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package KennyMolina.Logging.Test@0.0.1
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=KennyMolina.Logging.Test&version=0.0.1
                    
Install as a Cake Addin
#tool nuget:?package=KennyMolina.Logging.Test&version=0.0.1
                    
Install as a Cake Tool

Sefin.Ucf.Logging

Una librería de logging para .NET basada en log4net con configuración dinámica y soporte para múltiples appenders.

🚀 Características

  • ✅ Configuración dinámica mediante variables de entorno
  • ✅ Múltiples destinos de logging: Consola, Archivo, Email, Microsoft Teams
  • ✅ Patrón Singleton thread-safe
  • ✅ Auto-generación de archivo de configuración
  • ✅ Rotación automática de archivos de log
  • ✅ Soporte para .NET 8.0

📦 Instalación

dotnet add package KennyMolina.Logging.Test

O mediante NuGet Package Manager:

Install-Package KennyMolina.Logging.Test

🔧 Uso básico

using Sefin.Ucf.logging.lib;

// Obtener instancia del logger (Singleton)
var logger = Logging.GetInstance();

// Usar los diferentes niveles de log
logger.Info("Mensaje informativo");
logger.Debug("Mensaje de depuración");
logger.Warn("Mensaje de advertencia");
logger.Error("Mensaje de error");
logger.Fatal("Mensaje fatal");

⚙️ Configuración

Configuración por defecto

La librería genera automáticamente un archivo log.config si no existe, con las siguientes características:

  • Console Appender: Siempre habilitado
  • File Appender: Habilitado por defecto (configurable)
  • Email Appender: Deshabilitado por defecto (configurable)

Variables de entorno

Puedes controlar el comportamiento mediante variables de entorno:

Habilitar/Deshabilitar Appenders
# Habilitar logging a archivo (default: true)
ENABLE_FILE_LOGGING=true

# Habilitar logging por email (default: false)
ENABLE_EMAIL_LOGGING=true
Configuración de archivo
# Ruta del archivo de log
LOG_FILE_PATH=logs/app.log
Configuración de Email (SMTP)
EMAIL_TO=destinatario@example.com
EMAIL_FROM=remitente@example.com
EMAIL_SUBJECT=Error en Aplicación
SMTP_HOST=smtp.gmail.com
EMAIL_USERNAME=tu-email@gmail.com
EMAIL_PASSWORD=tu-contraseña-app
Configuración de Microsoft Teams

Para usar el appender de Teams, necesitas configurar manualmente el archivo log.config:

<appender name="TeamsAppender" type="Sefin.Ucf.logging.lib.TeamsAppender">
  <webhookUrl value="https://outlook.office.com/webhook/YOUR_WEBHOOK_URL" />
  <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%date %-5level %logger - %message%newline" />
  </layout>
</appender>

<root>
  <appender-ref ref="TeamsAppender" />
</root>

📝 Configuración personalizada

Nombre personalizado del archivo de configuración

var logger = Logging.GetInstance("mi-config.xml", "Mi Logger");

Configuración manual con log.config

Puedes crear tu propio archivo log.config en la raíz del proyecto:

<?xml version="1.0" encoding="utf-8" ?>
<log4net>
  <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%date %-5level %logger - %message%newline" />
    </layout>
  </appender>

  <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
    <file value="logs/app.log" />
    <appendToFile value="true" />
    <rollingStyle value="Size" />
    <maxSizeRollBackups value="5" />
    <maximumFileSize value="10MB" />
    <staticLogFileName value="true" />
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%date %-5level %logger - %message%newline" />
    </layout>
  </appender>

  <root>
    <level value="INFO" />
    <appender-ref ref="ConsoleAppender" />
    <appender-ref ref="RollingFileAppender" />
  </root>
</log4net>

🎯 Ejemplos avanzados

Logging con rotación de archivos

// Configurar variables de entorno antes de obtener la instancia
Environment.SetEnvironmentVariable("LOG_FILE_PATH", "logs/mi-app.log");
Environment.SetEnvironmentVariable("ENABLE_FILE_LOGGING", "true");

var logger = Logging.GetInstance();
logger.Info("Este mensaje se guardará en archivo con rotación automática");

Logging con notificaciones por email

// Configurar SMTP
Environment.SetEnvironmentVariable("ENABLE_EMAIL_LOGGING", "true");
Environment.SetEnvironmentVariable("EMAIL_TO", "admin@example.com");
Environment.SetEnvironmentVariable("EMAIL_FROM", "app@example.com");
Environment.SetEnvironmentVariable("SMTP_HOST", "smtp.gmail.com");
Environment.SetEnvironmentVariable("EMAIL_USERNAME", "tu-email@gmail.com");
Environment.SetEnvironmentVariable("EMAIL_PASSWORD", "tu-app-password");

var logger = Logging.GetInstance();
logger.Error("Este error se enviará por email");

🏗️ Arquitectura

La librería utiliza el patrón Singleton con Double-Check Locking para garantizar thread-safety:

public static Logging GetInstance(string logConfigName = "log.config", string loggerName = "Logger Sefin")
{
    if (_instance == null)
    {
        lock (_lock)
        {
            if (_instance == null)
            {
                _instance = new Logging(logConfigName, loggerName);
            }
        }
    }
    return _instance;
}

📋 Dependencias

  • log4net (v3.2.0)
  • Microsoft.AspNetCore.Http.Abstractions (v2.3.0)
  • Newtonsoft.Json (v13.0.4)

🤝 Contribuir

Las contribuciones son bienvenidas. Por favor, abre un issue primero para discutir los cambios que te gustaría hacer.

📄 Licencia

Este proyecto está bajo la licencia MIT.

📧 Contacto

Para preguntas o soporte, contacta a: [tu-email@example.com]

🔍 Keywords

logging, log4net, .NET, C#, dotnet, logger, diagnostic, monitoring

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated