public void RaiseAlert(ApplicationAlertKind kind, params object[] details)
        {
            BeginLogging();
            ExpireDups();

            var jsonDetail = JsonConvert.SerializeObject(details);

            var alert = new NodeAlert
            {
                Id = Guid.NewGuid().ToString(),
                ComponentOrigin = _reg.ComponentType,
                Detail          = jsonDetail,
                EventTime       = DateTime.UtcNow,
                Handled         = false,
                Kind            = kind
            };

            var hash = AlertHash(alert);

            if (!_duplicateTracking.ContainsKey(hash))
            {
                _duplicateTracking.TryAdd(hash, DateTime.UtcNow);
                _alerts.Enqueue(alert);
                _log.ErrorFormat("Application alert: {0}", jsonDetail);
                System.Diagnostics.Debug.WriteLine(jsonDetail);
            }
            else
            {
                _log.DebugFormat("app alert {0} is duplicate, discarding", hash);
            }
        }
 public void RaiseAlert(ApplicationAlertKind kind, params object[] details)
 {
     _publisher.Send(new AlertMsg
     {
         Kind    = kind,
         Details = details.Select(dt => dt.ToString()).ToArray()
     }, _route);
 }
Example #3
0
        public void RaiseAlert(ApplicationAlertKind kind, params object[] details)
        {
            var appLog = new System.Diagnostics.EventLog {
                Source = Process.GetCurrentProcess().ProcessName
            };
            var jsonDetail = JsonConvert.SerializeObject(details);

            var strEv = string.Format("Operational Event {0}:\n{1}", kind, jsonDetail);

            appLog.WriteEntry(strEv);
        }
Example #4
0
        public void RaiseAlert(ApplicationAlertKind kind, params object[] details)
        {
            try
            {
                var jsonDetail = JsonConvert.SerializeObject(details);
                var ol         = new AlertsLog
                {
                    Kind            = kind,
                    Detail          = jsonDetail,
                    MachineOrigin   = Environment.MachineName,
                    ComponentOrigin = _componentOrigin ?? "Unknown"
                };

                var strEv = string.Format("Operational Event {0}:\n{1}", ol.Kind, ol.Detail);

                // record to table.
                try
                {
                    using (var ds = DocumentStoreLocator.ResolveOrRoot(CommonConfiguration.CoreDatabaseRoute))
                    {
                        ds.Store(ol);
                        ds.SaveChanges();
                    }
                }
                catch
                {
                }

                // log it.
                try
                {
                    var log = LogManager.GetLogger(GetType());
                    log.Fatal(strEv);
                }
                catch
                {
                }
            }
            catch // could be in adverse conditions.
            {
            }
        }
Example #5
0
 public void RaiseAlert(ApplicationAlertKind kind, params object[] details)
 {
     _sink.RaiseAlert(kind, details);
 }