private static void AddExceptionDataAsLogParameter(Exception ex, LogObject log, string prefixo = "") { foreach (DictionaryEntry item in ex.Data) { log.AddParameter($"{prefixo}{item.Key}", item.Value); } }
private static void FillDynamicParameters(dynamic parameters, LogObject log) { if (parameters != null) { var properties = parameters.GetType().DeclaredProperties as System.Reflection.PropertyInfo[]; foreach (var property in properties) { log.AddParameter(property.Name, property.GetValue(parameters)); } } }
private static void LogInnerException(Exception ex, LogObject log, int level = 1) { if (ex.InnerException != null) { var innerEx = ex.InnerException; var excepLevel = $"ExLevel{level}"; log.AddParameter(excepLevel, CreateExceptionMessage(innerEx)); AddExceptionDataAsLogParameter(innerEx, log, excepLevel); LogInnerException(innerEx, log, ++level); } }