Beispiel #1
0
        public long?WriteLog(ILogMessageEntry logMessageEntry)
        {
            long?refMessage = null;

            if (EnabledLogTable.EnabledLog(logMessageEntry.MessageCodeAsLong, Transaction))
            {
                refMessage = WriteToDataBase(logMessageEntry);
            }
            ChangedFieldList.Clear();

            return(refMessage);
        }
        public string FormatMessage(ILogMessageEntry entry)
        {
            //return $"{entry.Timestamp}\t{entry.Message}";

            if (!string.IsNullOrWhiteSpace(entry.Message))
            {
                //if (entry.Message.TrimStart().StartsWith("{"))
                //{
                //    return $"{entry.Message}";
                //}
                //else
                //{
                return(LoggingExtensions.GetJson(entry));
                //return "{\"message\": \"" + entry.Message.Replace("\"", @"\\""") + "\"}";
                //}
            }

            return("");
        }
Beispiel #3
0
        private long?WriteToDataBase(ILogMessageEntry logMessageEntry)
        {
            var openConnection = false;

            try
            {
                if (_cmdLog.Connection.State != ConnectionState.Open)
                {
                    openConnection = true;
                    _cmdLog.Connection.Open();
                    if (_cmdLog.Connection != _cmdLogFields.Connection)
                    {
                        _cmdLogFields.Connection.Open();
                    }
                }

                _cmdLog.Parameters["@code"].Value    = (LogMessageType)logMessageEntry.MessageCodeAsLong;
                _cmdLog.Parameters["@SID"].Value     = logMessageEntry.Sid ?? Sid ?? User.GetSID(false);
                _cmdLog.Parameters["@content"].Value = logMessageEntry.Message;

                try
                {
                    _cmdLog.Parameters["@ClientIPAddress"].Value = HttpContext.Current == null ? "local" : HttpContext.Current.Request.UserHostAddress;
                }
                catch (HttpException e)
                {
                    _cmdLog.Parameters["@ClientIPAddress"].Value = "local";
                }
                catch (ArgumentException e)
                {
                    _cmdLog.Parameters["@ClientIPAddress"].Value = "local";
                }
                _cmdLog.Parameters["@refRVSProperties"].Value = logMessageEntry.RefRVSProperties;

                var value  = _cmdLog.ExecuteScalar();
                var result = (LogResult)_cmdLog.Parameters["@result"].Value;

                if ((result & LogResult.CodeNotFound) != 0)
                {
                    throw new Exception(String.Format("Could not write log entry. Message code '{0}' not found",
                                                      (LogMessageType)logMessageEntry.MessageCodeAsLong));
                }

                if ((result & LogResult.ManyRecordCardToSID) != 0)
                {
                    //throw new Exception(String.Format("Could not write log entry. There are more than one record cards which correspond to SID '{0}'", logMessageEntry.Sid));
                    throw new Exception(String.Format(Resources.SLogErrorMultipleUsers, logMessageEntry.Sid));
                }

                if ((result & LogResult.Succeed) != 0)
                {
                    foreach (LogChangedFieldEntry entry in ChangedFieldList)
                    {
                        WriteFieldChanged(Convert.ToInt64(value), entry.RowEntity, entry.FieldName, entry.OldValue, entry.NewValue);
                    }

                    return(Convert.ToInt64(value));
                }
            }
            finally
            {
                if (openConnection)
                {
                    _cmdLog.Connection.Close();
                    if (_cmdLog.Connection != _cmdLogFields.Connection)
                    {
                        _cmdLogFields.Connection.Close();
                    }
                }
            }

            return(null);
        }
Beispiel #4
0
 public void Log(ILogMessageEntry logMessageEntry)
 {
     WriteLog(logMessageEntry);
 }
 public long?WriteLog(ILogMessageEntry logMessageEntry)
 {
     return(logMonitor.WriteLog(logMessageEntry));
 }
 public void Log(ILogMessageEntry logMessageEntry)
 {
     logMessageEntry.Sid = User.GetSID();
     logMonitor.Log(logMessageEntry);
 }