private void NLogWriter(RecordLogInfo recordLogInfo) { //RecordLogInfo物件轉為Json寫入NLog中 var recordMessage = JsonConvert.SerializeObject(recordLogInfo); switch (recordLogInfo.EventLevel) { case "Trace": NLogWriter(recordMessage, EventLevel.Trace); break; case "Debug": NLogWriter(recordMessage, EventLevel.Debug); break; case "Info": NLogWriter(recordMessage, EventLevel.Info); break; case "Warn": NLogWriter(recordMessage, EventLevel.Warn); break; case "Error": NLogWriter(recordMessage, EventLevel.Error); break; case "Fatal": NLogWriter(recordMessage, EventLevel.Fatal); break; } }
//將LogInfo物件轉為Json,便於寫入NLog private RecordLogInfo ConvertLogInfo(string adAccount, LogType logType, EventLevel eventLevel, LogAction logAction, SystemName systemName, string logMessage, object logJsonObject, Exception logException) { var recordLogInfo = new RecordLogInfo { ADAcnt = adAccount, LogType = logType.ToString(), EventLevel = eventLevel.ToString(), SystemName = systemName.ToString(), Action = logAction.ToString(), Message = logMessage, Exception = BuildExceptionMessage(logException) }; try { try { recordLogInfo.Json = JsonConvert.SerializeObject(logJsonObject); return(recordLogInfo); } catch (Exception) { foreach (var item in (IList)logJsonObject) { recordLogInfo.Json += JsonConvert.SerializeObject(item); } return(recordLogInfo); } } catch (Exception e) { var message = new StringBuilder(); message.AppendLine(); message.AppendLine("ConvertLogInfo error, object convert json error!"); message.AppendLine(BuildExceptionMessage(e)); NLogWriter(message.ToString(), EventLevel.Error); return(recordLogInfo); } }