Beispiel #1
0
        private void WriteLog(int sniffMask, TracingLevel level, Exception ex, string from, string to, string message)
        {
            // NextVersion
            //int repeat;
            //if (TracingManager.AntiRepeat && !sniffed) {
            //    if (AntiRepeater.IsRepeated(out repeat)) {
            //        return;
            //    }
            //} else {
            //    repeat = 1;
            //}

            //if (repeat > 1) {
            //    message = string.Format("!!!Repeat {0} times in last 5 seconds\r\n{1}", repeat, message);
            //}

            TracingEvent evt = new TracingEvent();

            evt.Level        = level;
            evt.LoggerName   = _loggerName;
            evt.Time         = DateTime.Now;
            evt.Message      = message;
            evt.ProcessInfo  = ServiceEnvironment.ProcessInfo;
            evt.ServiceName  = ServiceEnvironment.ServiceName;
            evt.ComputerName = ServiceEnvironment.ComputerName;
            evt.ThreadInfo   = TracingHelper.FormatThreadInfo(Thread.CurrentThread);
            evt.From         = from ?? "";
            evt.To           = to ?? "";
            evt.Error        = ex == null ? "" : ex.ToString();
            evt.Repeat       = 1;       // repeat;

            if (sniffMask > 0)
            {
                for (int i = 0; i < TracingSniffer.MaxSniffer; i++)
                {
                    if ((sniffMask & (1 << i)) > 0)
                    {
                        TracingSniffer sniffer = _sniffers[i];
                        if (sniffer != null)
                        {
                            sniffer.Enqueue(evt);
                        }
                    }
                }
            }
            if (evt.Level == TracingLevel.Error)
            {
                _observerItem.LastError = evt.Message;
                if (ex != null)
                {
                    _observerItem.LastException = evt.Error;
                }
            }
            TracingManager.Enqueue(evt);
        }
Beispiel #2
0
        public void Enqueue(TracingEvent evt)
        {
            if (!_enabled)
            {
                return;
            }

            try {
                _queueTracing.Enqueue(evt);
            } catch (Exception ex) {
                SystemLog.Error(LogEventID.TracingFailed, ex, "TracingSniffer.Enqueue:{0}", _url);
            }
        }
Beispiel #3
0
        private void WriteLog(int sniffMask, TracingLevel level, Exception ex, string from, string to, string message)
        {
            // NextVersion
            //int repeat;
            //if (TracingManager.AntiRepeat && !sniffed) {
            //    if (AntiRepeater.IsRepeated(out repeat)) {
            //        return;
            //    }
            //} else {
            //    repeat = 1;
            //}

            //if (repeat > 1) {
            //    message = string.Format("!!!Repeat {0} times in last 5 seconds\r\n{1}", repeat, message);
            //}

            TracingEvent evt = new TracingEvent();
            evt.Level = level;
            evt.LoggerName = _loggerName;
            evt.Time = DateTime.Now;
            evt.Message = message;
            evt.ProcessInfo = ServiceEnviornment.ProcessInfo;
            evt.ServiceName = ServiceEnviornment.ServiceName;
            evt.ComputerName = ServiceEnviornment.ComputerName;
            evt.ThreadInfo = TracingHelper.FormatThreadInfo(Thread.CurrentThread);
            evt.From = from;
            evt.To = to;
            evt.Error = ex == null ? "" : ex.ToString();
            evt.Repeat = 1; // repeat;

            if (sniffMask > 0) {
                for (int i = 0; i < TracingSniffer.MaxSniffer; i++) {
                    if ((sniffMask & (1 << i)) > 0) {
                        TracingSniffer sniffer = _sniffers[i];
                        if (sniffer != null)
                            sniffer.Enqueue(evt);
                    }
                }

            }
            if (evt.Level == TracingLevel.Error) {
                _observerItem.LastError = evt.Message;
                if (ex != null)
                    _observerItem.LastException = evt.Error;

            }
            TracingManager.Enqueue(evt);
        }
Beispiel #4
0
 private static void TracingDequeueAction(TracingEvent[] evts)
 {
     foreach (IAppender appender in _appenders) {
         try {
             if (!appender.Protector.Failing) {
                 appender.AppendTracing(evts);
             }
         } catch (Exception ex) {
             appender.Protector.OnException(ex);
             SystemLog.Error(LogEventID.TracingFailed, ex,
                 "Tracing Appender<{0}> Write Tracing Failed!", appender.Type);
         }
     }
 }
Beispiel #5
0
 internal static void Enqueue(TracingEvent evt)
 {
     _queueTracing.Enqueue(evt);
 }