コード例 #1
0
 public override void AgregarParametros()
 {
     Print(FormatoSalida);
     Print(SeparadorSalida.ToString());
 }
コード例 #2
0
        /// <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);
        }