public override void AgregarParametros() { Print(FormatoSalida); Print(SeparadorSalida.ToString()); }
/// <summary> /// Formatea un registro en una cadena de texto. /// </summary> /// <remarks> /// Registro de versiones: /// /// 1.0 10/04/2016 Marcos Abraham Hernández Bravo (Ada Ltda.): versión inicial. /// </remarks> /// <param name="registro">Registro unificado.</param> /// <returns>Cadena de texto formateada.</returns> public virtual string Formatear(RegistroInLineTO registro) { if (FormatoSalida == null) { FormatoSalida = FormatoPredeterminado; } if (SeparadorSalida == 0) { SeparadorSalida = SeparadorPredeterminado; } if (!FormatoSalida.EndsWith(SeparadorSalida.ToString()) && !FormatoSalida.Equals(string.Empty)) { FormatoSalida += SeparadorSalida; } if (FormatoSalida == FormatoPredeterminado + SeparadorSalida) { FormatoSalida = string.Format(FormatoPredeterminado, SeparadorSalida); } ExpresionFormato expresionFormato = new ExpresionFormato(FormatoSalida, SeparadorSalida); if (ForzarTodosCampos) { if (!expresionFormato.TagFormato.ContainsKey("[ThreadGUID]")) { FormatoSalida += "[ThreadGUID]" + SeparadorSalida; } if (!expresionFormato.TagFormato.ContainsKey("[MethodGUID]")) { FormatoSalida += "[MethodGUID]" + SeparadorSalida; } if (!expresionFormato.TagFormato.ContainsKey("[Namespace]")) { FormatoSalida += "[Namespace]" + SeparadorSalida; } if (!expresionFormato.TagFormato.ContainsKey("[Class]")) { FormatoSalida += "[Class]" + SeparadorSalida; } if (!expresionFormato.TagFormato.ContainsKey("[Method]")) { FormatoSalida += "[Method]" + SeparadorSalida; } if (!expresionFormato.TagFormato.ContainsKey("[Type]")) { FormatoSalida += "[Type]" + SeparadorSalida; } if (!expresionFormato.TagFormato.ContainsKey("[Level]")) { FormatoSalida += "[Level]" + SeparadorSalida; } if (!expresionFormato.TagFormato.ContainsKey("[DateTime]")) { FormatoSalida += "[DateTime]" + SeparadorSalida; } if (!expresionFormato.TagFormato.ContainsKey("[VarName]")) { FormatoSalida += "[VarName]" + SeparadorSalida; } if (!expresionFormato.TagFormato.ContainsKey("[VarValue]")) { FormatoSalida += "[VarValue]" + SeparadorSalida; } if (!expresionFormato.TagFormato.ContainsKey("[StackTrace]")) { FormatoSalida += "[StackTrace]" + SeparadorSalida; } if (!expresionFormato.TagFormato.ContainsKey("[Data]")) { FormatoSalida += "[Data]" + SeparadorSalida; } if (!expresionFormato.TagFormato.ContainsKey("[ExceptionType]")) { FormatoSalida += "[ExceptionType]" + SeparadorSalida; } if (!expresionFormato.TagFormato.ContainsKey("[Message]")) { FormatoSalida += "[Message]" + SeparadorSalida; } if (!expresionFormato.TagFormato.ContainsKey("[Correlative]")) { FormatoSalida += "[Correlative]" + SeparadorSalida; } expresionFormato.Recargar(FormatoSalida, SeparadorSalida); } string fechaActual = DateTime.Now.ToString(); string formatoFecha = ""; if (expresionFormato.TagFormato.ContainsKey("[DateTime]")) { formatoFecha = expresionFormato.TagFormato["[DateTime]"]; fechaActual = DateTime.Now.ToString(formatoFecha); } string metodo = registro.Metodo.Substring(registro.Metodo.IndexOf(" ") + 1); metodo = metodo.Substring(0, metodo.IndexOf("(")); string formatoMetodo = "Full"; if (expresionFormato.TagFormato.ContainsKey("[Method]")) { formatoMetodo = expresionFormato.TagFormato["[Method]"]; } if (!string.IsNullOrEmpty(formatoMetodo)) { if (formatoMetodo.Equals("Full", StringComparison.InvariantCultureIgnoreCase)) { metodo = registro.Metodo; } } if (!string.IsNullOrEmpty(registro.StackTrace)) { registro.StackTrace = "\n\t\t<StackTrace>\n\t\t\t" + CambiarCaracteres(registro.StackTrace) + "\n\t\t</StackTrace>\n"; } string salida = FormatoSalida .Replace("[ThreadGUID]", registro.ThreadGUID) .Replace("[MethodGUID]", registro.MethodGUID) .Replace("[Namespace]", registro.Namespace) .Replace("[Class]", CambiarCaracteres(registro.Clase)) .Replace("[Method]", CambiarCaracteres(metodo)) .Replace(string.Format("[Method:{0}]", formatoMetodo), CambiarCaracteres(metodo)) .Replace("[Type]", registro.Tipo.Codigo) .Replace("[Level]", registro.Nivel != null ? registro.Nivel.Codigo : SeparadorSalida.ToString()) .Replace("[DateTime:" + formatoFecha + "]", fechaActual) .Replace("[DateTime]", fechaActual) .Replace("[VarName]", registro.NombreVariable) .Replace("[VarValue]", CambiarCaracteres(registro.ValorVariable)) .Replace("[StackTrace]", registro.StackTrace) .Replace("[Data]", CambiarCaracteres(registro.Data)) .Replace("[ExceptionType]", registro.TipoExcepcion) .Replace("[Message]", CambiarCaracteres(registro.Mensaje)) .Replace("[Correlative]", registro.Correlativo.ToString()); return(salida); }