using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Text; using System.Threading.Tasks; using bdAsegasa.dbcontext; using Microsoft.VisualBasic; namespace bdAsegasa.db { public class Utilidades { public static string Usuario; public static int idUsuario; public static usuarios UsuarioActual; public static string VersionPrograma { get; set; } public static EventLog el; public static string DirectorioLogs; private static object oBloqueoLog = new object(); public static void AñadeLog(tsUtilidades.Enumeraciones.TipoLog Tipo, string Asunto, string Mensaje, Exception e = null) { // ---------------------------------------------------------------------------------------------------- // Descripción Sub: Gestión de logs de la aplicación // Fecha. Creacion: ??? // Creada por: manmog // Ultima Modificacion: 24/11/2010 // // Modificaciones: // =============== lock (oBloqueoLog) { string sFicheroLog = DirectorioLogs + "Log-" + DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + ".txt"; try { // if (!(e == null)) if (e != null) //davrod { if (el is not null) el.WriteEntry(e.Message + Constants.vbCrLf + e.StackTrace, EventLogEntryType.Error); string sStackTrace = "Tipo excepción: " + e.ToString() + Constants.vbCrLf; var exError = e; do { sStackTrace += exError.StackTrace + Constants.vbCrLf; exError = exError.InnerException; } while (exError != null); if (!string.IsNullOrEmpty(sStackTrace)) Mensaje += Constants.vbCrLf + "StackTrace: " + sStackTrace; Anadelogtxt(Mensaje + " --- " + e.StackTrace, sFicheroLog); } switch (Tipo) { case tsUtilidades.Enumeraciones.TipoLog.Fallo: case tsUtilidades.Enumeraciones.TipoLog.Advertencia: { if (Tipo == tsUtilidades.Enumeraciones.TipoLog.Fallo) { sFicheroLog = DirectorioLogs + "Errores-" + DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString().PadLeft(2, '0') + ".txt"; Asunto = "Error Servicio Tecnosis. " + ". Version:" + VersionPrograma + ". " + Asunto; Mensaje = "Error Servicio Tecnosis. " + DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss") + " Enviado desde " + Environment.MachineName + ". Version:" + VersionPrograma + ". Mensaje: " + Mensaje; } else { Asunto = "Advertencia Servicio Tecnosis. " + ". Version:" + VersionPrograma + ". " + Asunto; Mensaje = "Advertencia Servicio Tecnosis. " + DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss") + " Enviado desde " + Environment.MachineName + ". Version:" + VersionPrograma + ". " + Mensaje; } string sDireccionesEnvio = "sevilla@tecnosis.net"; string sServidorSMTP = "mail.tecnosis.net"; string sRemitente = "logs@tecnosis.es"; tsUtilidades.Correo.Funciones.EnviaCorreo(sServidorSMTP, sRemitente, sDireccionesEnvio, Asunto, Mensaje, null, "", "", sRemitente, "jtvdzklmujkechje", 587, true); //Cambiar contraseña de logs -> LoGs20i9. break; } } // Anadelogtxt(Mensaje + " --- " + e.StackTrace, sFicheroLog); } catch (Exception ex) { sFicheroLog = DirectorioLogs + @"Errores\Errores-" + DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString().PadLeft(2, '0') + ".txt"; if (e is not null) Mensaje += " --- " + e.StackTrace; Anadelogtxt(Mensaje + " ---" + ex.Message + " --- " + ex.StackTrace, sFicheroLog); } } } public static void Anadelogtxt(string Mensaje, string FicheroLog) { System.IO.StreamWriter sw = null; try { Mensaje = Mensaje.Replace(Constants.vbCrLf, "---"); if (!System.IO.Directory.Exists(System.IO.Path.GetDirectoryName(FicheroLog))) tsUtilidades.Utilidades.CreaEstructuraDirectorio(System.IO.Path.GetDirectoryName(FicheroLog)); if (System.IO.File.Exists(FicheroLog)) { sw = System.IO.File.AppendText(FicheroLog); } else { sw = System.IO.File.CreateText(FicheroLog); } Mensaje = DateTime.Now.ToString() + "|" + "Ws: " + Process.GetCurrentProcess().WorkingSet64.ToString().PadLeft(20) + " PMS: " + Process.GetCurrentProcess().PrivateMemorySize64.ToString().PadLeft(20) + "|" + Mensaje; sw.WriteLine(Mensaje); } catch (Exception ex) { try { string sDireccionesEnvio = "sevilla@tecnosis.net"; string sServidorSMTP = "mail.tecnosis.net"; string sRemitente = "logs@tecnosis.es"; // tsUtilidades.Correo.Funciones.EnviaCorreo(sServidorSMTP, sRemitente, sDireccionesEnvio, Asunto, Mensaje,,,,, "se9608dc.g") tsUtilidades.Correo.Funciones.EnviaCorreo(sServidorSMTP, sRemitente, sDireccionesEnvio, "Error Anadelogtxt. " + Mensaje, Environment.MachineName + ".- " + ex.Message + Constants.vbCrLf + ex.StackTrace + Constants.vbCrLf + ex.Source, null, "", "", sRemitente, "jtvdzklmujkechje", 587, true); //Cambiar contraseña de logs -> LoGs20i9. } catch (Exception ex2) { } } finally { try { sw.Close(); } catch { } } } } }