예제 #1
0
        private static void TracingDequeueAction(TracingEvent[] evts)
        {
            bool writebak = true;

            foreach (IAppender appender in _appenders)
            {
                try {
                    if (appender == _backupAppender)
                    {
                        writebak = false;
                    }

                    if (!appender.Protector.Failing)
                    {
                        appender.AppendTracing(evts);
                        writebak = false;
                    }
                } catch (Exception ex) {
                    appender.Protector.OnException(ex);
                    SystemLog.Error(LogEventID.TracingFailed, ex,
                                    "Tracing Appender<{0}> Write Tracing Failed!", appender.Type);
                }
            }

            if (writebak && _backupAppender != null)
            {
                try {
                    _backupAppender.AppendTracing(evts);
                } catch (Exception ex) {
                    SystemLog.Error(LogEventID.TracingFailed, ex, "Tracing Appender<{0}> Write Tracing Failed!", _backupAppender.Type);
                }
            }
        }