Example #1
0
        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));
 }