public void Log(Exception exception, Dictionary <string, object> additionalInfo) { if (!Convert.ToBoolean(configuration[$"{configModuleStatus}:Error"])) { return; } var logDetail = new ErrorLogDetail(); logDetail.PopulateModel(exception?.Message, contextAccessor.HttpContext, configuration, additionalInfo, false); logDetail.Exception = exception?.ToBetterString(); logDetail.ExceptionBaseType = exception?.GetBaseExceptionType().FullName; logDetail.Level = LogLevel.Error.ToString(); logger.Information("{Timestamp}{Message}{Location}{Product}" + "{Hostname}" + "{UserId}{UserName}{SessionId}{CorrelationId}{AdditionalInfo}{ExceptionBaseType}{Exception}{Level}", logDetail.Timestamp, logDetail.Message, logDetail.Location, logDetail.Product, logDetail.Hostname, logDetail.UserId, logDetail.UserName, logDetail.SessionId, logDetail.CorrelationId, logDetail.AdditionalInfoDictionary.JsonSerialize(), logDetail.ExceptionBaseType, logDetail.Exception, logDetail.Level); }
private ErrorLogDetail GetLogDetail(IInvocation invocation, System.Exception e) { var logParameters = new List <MethodParameter>(); for (int i = 0; i < invocation.Arguments.Length; i++) { logParameters.Add(new MethodParameter { Name = invocation.GetConcreteMethod().GetParameters()[i].Name, Value = invocation.Arguments[i], Type = invocation.Arguments[i].GetType().Name }); } var logDetail = new ErrorLogDetail { MethodName = $"{invocation.Method.DeclaringType.FullName}.{invocation.Method.Name}", MethodParameters = logParameters, ExceptionMessage = e.Message }; return(logDetail); }
public void Error(ErrorLogDetail logDetail) { _logger.Error(JsonConvert.SerializeObject(logDetail)); }