/// <summary> /// Registra el inicio de un método, guarda la hora actual y cada parametro especificando /// nombre, tipo y valor. Se recomienda que esta sea la primera instrucción de cada método. /// Si se logea el inicio, es obligatorio logear el retorno aunque el método sea Void. /// </summary> /// <example> /// public void Metodo1(int a, string b, bool c) /// { /// log.Inicio(a, b, c); /// log.Retorno(); /// } /// /// public void Metodo2() /// { /// log.Inicio(); /// log.Retorno(); /// } /// </example> /// <remarks> /// <para> /// <h2 class="groupheader">Registro de versiones</h2> /// <ul> /// <li>1.0.0</li> /// <table> /// <tr style="font-weight: bold;"> /// <td>Autor</td> /// <td>Fecha</td> /// <td>Descripción</td> /// </tr> /// <tr> /// <td>Marcos Abraham Hernández Bravo.</td> /// <td>11/11/2016</td> /// <td>Versión Inicial.</td> /// </tr> /// </table> /// </ul> /// </para> /// </remarks> /// <param name="parametros">Lista de parametros del método actual.</param> private void _Inicio(params object[] parametros) { Llamada++; RegistroInLineTO registro = new RegistroInLineTO() { ThreadGUID = ThreadGUID, MethodGUID = _MethodGUID, Namespace = Metodo.DeclaringType.Namespace, Clase = Metodo.DeclaringType.Name, Metodo = Metodo.ToString(), Correlativo = Llamada, Tipo = Tipo.Inicio }; foreach (ALogWriter writer in Writers) { if (writer.PermiteTipo(Tipo.Inicio)) { writer.Guardar(registro); } } int numParametro = 0; if (parametros != null && parametros.Length > 0) { foreach (ParameterInfo param in Metodo.GetParameters()) { Llamada++; string valor = string.Empty; try { valor = parametros[numParametro].ToJson(true); } catch (Exception e) { valor = "Error al transformar a Json - " + e.Message.Replace("\n", "\t"); } RegistroInLineTO parametro = new RegistroInLineTO() { ThreadGUID = ThreadGUID, MethodGUID = _MethodGUID, Namespace = Metodo.DeclaringType.Namespace, Clase = Metodo.DeclaringType.Name, Metodo = Metodo.ToString(), NombreVariable = param.Name, ValorVariable = valor, Correlativo = Llamada, Tipo = Tipo.Parametro }; foreach (ALogWriter writer in Writers) { if (writer.PermiteTipo(Tipo.Parametro)) { writer.Guardar(parametro); } } numParametro++; } } }