Exemple #1
0
        public void Log(string activityName, Dictionary <string, object> additionalInfo)
        {
            if (!Convert.ToBoolean(configuration[$"{configModuleStatus}:Info"]))
            {
                return;
            }

            var logDetail = new InfoLogDetail();

            logDetail.PopulateModel(activityName, contextAccessor.HttpContext, configuration, additionalInfo, true);

            logger.Information("{Timestamp}{Message}{Location}{Product}" +
                               "{Hostname}" +
                               "{UserId}{UserName}{SessionId}{CorrelationId}{AdditionalInfo}",
                               logDetail.Timestamp, logDetail.Message,
                               logDetail.Location,
                               logDetail.Product,
                               logDetail.Hostname, logDetail.UserId,
                               logDetail.UserName, logDetail.SessionId,
                               logDetail.CorrelationId,
                               logDetail.AdditionalInfoDictionary.JsonSerialize());
        }
Exemple #2
0
        private InfoLogDetail GetLogDetail(IInvocation invocation)
        {
            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 InfoLogDetail
            {
                MethodName       = $"{invocation.Method.DeclaringType.FullName}.{invocation.Method.Name}",
                MethodParameters = logParameters
            };

            return(logDetail);
        }
 public void Info(InfoLogDetail logDetail)
 {
     _logger.Information(JsonConvert.SerializeObject(logDetail));
 }