MtxLog 1.0.4
dotnet add package MtxLog --version 1.0.4
NuGet\Install-Package MtxLog -Version 1.0.4
<PackageReference Include="MtxLog" Version="1.0.4" />
<PackageVersion Include="MtxLog" Version="1.0.4" />
<PackageReference Include="MtxLog" />
paket add MtxLog --version 1.0.4
#r "nuget: MtxLog, 1.0.4"
#:package MtxLog@1.0.4
#addin nuget:?package=MtxLog&version=1.0.4
#tool nuget:?package=MtxLog&version=1.0.4
📦 MtxLog
Esta biblioteca facilita la gestión de logs en aplicaciones .NET, permitiendo registrar mensajes de depuración, errores y objetos de respuesta de manera estructurada y eficiente. Se han corregido errores de concurrencia en la escritura.
🚀 Instalación
Puedes instalar el paquete desde NuGet ejecutando en tu proyecto:
dotnet add package MtxLog
O desde la Consola del Administrador de Paquetes en Visual Studio:
Install-Package MtxLog
📖 Ejemplo de uso
csharp
using BasicLibraryExt;
using MtxLog;
var per = new persona { Codigo = "100", Nombre = "Juan", Direccion = "Calle" };
//LogService.PathApp = ""; // Opcional para indicar una Path absoluto al log, por defecto toma: PathApp/Log
LogService.Debug("Hello, World!");
LogService.Debug("Hello, World!", per);
try
{
var a = 20;
var b = 0;
var x = a / b;
}
catch (Exception ex)
{
LogService.Write(ex);
}
try
{
var a = 20;
var b = 0;
var x = a / b;
}
catch (Exception ex)
{
LogService.Write<persona>(ex, per);
}
var eml = new mail { email_adress = "prueba.gmail.com", email_message = "", display_name = "" };
// Ejemplo 1 de uso de Objeto Respuesta
OperationResult<string> resp = FakeSendMail(eml);
if (resp.Ok) Console.WriteLine($"TrackId: {resp.Response}");
LogService.Write(resp);
// Ejemplo 2 de uso de Objeto Respuesta
eml = new mail { email_adress = "prueba.gmail.com", email_message = "prueba", display_name = "" };
resp = FakeSendMail(eml);
if (resp.Ok) Console.WriteLine($"TrackId: {resp.Response}");
LogService.Write(resp);
// Ejemplo 3 de uso de Objeto Respuesta
eml = new mail { email_adress = "prueba@gmail.com", email_message = "prueba", display_name = "" };
resp = FakeSendMail(eml);
if (resp.Ok) Console.WriteLine($"TrackId: {resp.Response}");
LogService.Write(resp, true);
eml = new mail { email_adress = "prueba@gmail.com", email_message = "prueba", display_name = "Juan" };
resp = FakeSendMail(eml);
if (resp.Ok) Console.WriteLine($"TrackId: {resp.Response}");
// Ejemplo 4 de uso de Objeto Respuesta
LogService.Write(resp); // Esto no hará nada, porque no hay error
// Ejemplo 5 de uso de Objeto Respuesta
LogService.Write(resp, true); // Esto forzará la escritura en el Log, aunque no haya error, pero no registrará el objeto [eml]
LogService.Write(resp, eml, true); // Esto forzará la escritura en el Log, aunque no haya error.
eml = new mail { email_adress = "prueba.gmail.com", email_message = "", display_name = "" };
resp = FakeSendMail(eml);
if (resp.Ok) Console.WriteLine($"TrackId: {resp.Response}");
// Ejemplo 6 de uso de Objeto Respuesta
LogService.Write(resp, eml);
/// <summary>
/// Método de Ejemplo de la técnica de Objeto Respuesta.
/// Este método simula el envío de un email
/// </summary>
/// <param name="email_adress"></param>
/// <param name="email_message"></param>
/// <param name="display_name"></param>
/// <returns></returns>
static OperationResult<string> FakeSendMail(mail mail)
{
var errors = new List<Error>();
var warnings = new List<Error>();
// Validaciones previas
if (!mail.email_adress.IsValidEmail())
errors.Add(new Error { Source = ErrorSource.BackEnd, Codigo = "E01", Descripcion = $"El email <<{mail.email_adress}>> no tiene un formato válido" });
if (string.IsNullOrWhiteSpace(mail.email_message))
errors.Add(new Error { Source = ErrorSource.BackEnd, Codigo = "E02", Descripcion = "email_message no puede ser un string vacío" });
if (string.IsNullOrWhiteSpace(mail.display_name))
warnings.Add(new Error { Source = ErrorSource.BackEnd, Codigo = "W01", Descripcion = "No se ha especificado un nombre de destinatario" });
// 🚨 Si hay errores de validación, no intento enviar nada
if (errors.Count > 0)
return OperationResult<string>.FromResult(errors: errors, warnings: warnings);
try
{
// Aquí debería ir la llamada real a tu servicio externo
var TrackID = Guid.NewGuid().ToString();
// ✅ Data es el TrackID, y warnings opcionales
return OperationResult<string>.FromResult(TrackID, warnings: warnings);
}
catch (Exception ex)
{
errors.Add(new Error { Source = ErrorSource.ExternalService, Descripcion = $"Excepción al enviar correo: {ex.Message}" });
return OperationResult<string>.FromResult(errors: errors, warnings: warnings);
}
}
public class persona
{
public string Codigo { get; set; } = "";
public string Nombre { get; set; } = "";
public string Direccion { get; set; } = "";
}
public class mail
{
public string email_adress { get; set; } = "";
public string email_message { get; set; } = "";
public string display_name { get; set; } = "";
}
📌 Compatibilidad
✅ .NET Framework 4.8
✅ .NET Standard 2.0
✅ .NET 6
✅ .NET 8
📜 Licencia
Este software es propiedad de SISTEMAS 360 SAS (en adelante “el Licenciante”). Su uso está sujeto a los siguientes términos:
1) Licencia de prueba: El software puede usarse gratuitamente por un periodo de 6 meses a partir de la primera instalación.
2) Licencia comercial: Después del periodo de prueba, el uso requiere la compra de una suscripción mensual o anual. El uso sin licencia activa está estrictamente prohibido.
3) Restricciones:
3.1) Queda prohibida la descompilación, ingeniería inversa, modificación u ofuscación inversa del software.
3.2) No está permitido redistribuir, sublicenciar o revender el software sin autorización escrita del Licenciante.
4. Propiedad intelectual: Este software es propiedad exclusiva del Licenciante. No se transfiere ningún derecho de propiedad al usuario, solo un derecho de uso limitado bajo esta licencia.
5) Limitación de responsabilidad: El software se entrega “tal cual”. El Licenciante no será responsable de daños directos, indirectos o consecuentes derivados de su uso.
6) Terminación: El incumplimiento de estos términos resultará en la terminación automática de la licencia y en la obligación de desinstalar el software.
| 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
- BasicLibraryExt (>= 1.0.10)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.