Exemple #1
0
 internal void Log(LatencyDetectionContext context)
 {
     foreach (KeyValuePair <LoggingType, ILatencyDetectionLogger> keyValuePair in this.loggers)
     {
         ILatencyDetectionLogger               value = keyValuePair.Value;
         LoggingType                           key   = keyValuePair.Key;
         LatencyDetectionContext               latencyDetectionContext;
         LatencyReportingThreshold             threshold;
         ICollection <LatencyDetectionContext> backlog;
         bool flag = this.checker.ShouldCreateReport(context, key, out latencyDetectionContext, out threshold, out backlog);
         if (flag)
         {
             LatencyDetectionException   exception = latencyDetectionContext.CreateLatencyDetectionException();
             PerformanceReporter.LogData state     = new PerformanceReporter.LogData(value, threshold, latencyDetectionContext, backlog, exception);
             ThreadPool.QueueUserWorkItem(PerformanceReporter.LogReportDelegate, state);
         }
     }
 }
Exemple #2
0
 private static void ReportingWorker(object state)
 {
     PerformanceReporter.LogData logData = (PerformanceReporter.LogData)state;
     logData.Logger.Log(logData.Threshold, logData.Trigger, logData.Backlog, logData.Exception);
 }