/// <summary> /// Metodo extensor para registrar un log en el sistema con nombre de archivo, clase y metodo /// </summary> /// <param name="log">referencia a la cadena del log a registrar</param> /// <param name="filename"> /// Nombre o ruta\Nombre del archivo de texto en el que sera registrado el log. /// Si esta vacio o es nulo, se establecera el nombre por defecto 'Log_{0}.log' donde {0} es la fecha en formato 'MMyyy' /// </param> /// <param name="entryType">tipo de entrada en el log (error, warning, etc.)</param> /// <param name="type">Clase que sera registrada en el log, null si no se quiere establecer</param> /// <param name="method">Metodo que sera registrado en el log, null o cadena vacia si no se quiere establecer</param> /// <param name="warningLevel">Nivel de warning para registrar en el log, la configuracion permite filtrar niveles de warnings (1 maximo, 5 minimo)</param> public static void RegisterLog(this string log, string filename, EnumLogType entryType, Type type, string method, EnumWarningLevel warningLevel = EnumWarningLevel.LEVEL_3) { // verificar si es un warning, el nivel para no registrarse if (entryType == EnumLogType.WARNING && (int)warningLevel > (int)Log._warningLevel) { return; } // obtener la cadena con el log formateado string logString = Log._getLogStringFormat(log, entryType, type, method); // mostrar el log en los resultados del depurador Log._showInDebugger(log); // registrar en archivo de texto, usar el nombre del parametro de entrada, en caso de no existir, sera el nombre de la propiedad, // si no existe tampoco, sera usado el nombre por defecto Log._writeFile(filename ?? LogFileName, logString); }
/// <summary> /// Constructor estatico de la clase para inicializar el helper /// </summary> static Log() { // crear el directorio por defecto donde seran almacenados los logs LogPath = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData); // añadir el directorio por defecto 'Log' LogPath = System.IO.Path.Combine(LogPath, "log"); // almacenar el nivel de warnings por defecto = 3 _warningLevel = EnumWarningLevel.LEVEL_3; // crear el directorio de logs si no existe try { if (!Directory.Exists(LogPath)) { Directory.CreateDirectory(LogPath); } } catch (Exception ex) { Trace.Write(ex); } }
/// <summary> /// Metodo extensor para registrar un log en el sistema con nombre de clase y metodo /// </summary> /// <param name="_log">referencia a la cadena del log a registrar</param> /// <param name="_entryType">tipo de entrada en el log (error, warning, etc.)</param> /// <param name="_type">Clase que sera registrada en el log, null si no se quiere establecer</param> /// <param name="_method">Metodo que sera registrado en el log, null o cadena vacia si no se quiere establecer</param> /// <param name="_warningLevel">Nivel de warning para registrar en el log, la configuracion permite filtrar niveles de warnings (1 maximo, 5 minimo)</param> public static void RegisterLog(this string _log, EnumLogType _entryType, Type _type, string _method, EnumWarningLevel _warningLevel) { // llamar a la funcion sobrecargada correspondiente _log.RegisterLog(null, _entryType, _type, _method, _warningLevel); }
/// <summary> /// Metodo extensor para registrar un log en el sistema /// NOTA: esta funcion registra un Log con una entrada de informacion, para otros tipos de entradas, ver funciones sobrecargadas /// </summary> /// <param name="_log">referencia a la cadena del log a registrar</param> /// <param name="_warningLevel">Nivel de warning para registrar en el log, la configuracion permite filtrar niveles de warnings (1 maximo, 5 minimo)</param> public static void RegisterLog(this string _log, EnumWarningLevel _warningLevel) { // llamar a la funcion sobrecargada correspondiente _log.RegisterLog(EnumLogType.INFO, null, null, _warningLevel); }