コード例 #1
0
 internal LogData(ILatencyDetectionLogger logger, LatencyReportingThreshold threshold, LatencyDetectionContext trigger, ICollection <LatencyDetectionContext> backlog, LatencyDetectionException exception)
 {
     this.logger    = logger;
     this.threshold = threshold;
     this.trigger   = trigger;
     this.backlog   = backlog;
     this.exception = exception;
 }
コード例 #2
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);
         }
     }
 }
コード例 #3
0
        public void SetLogger(ILatencyDetectionLogger logger)
        {
            if (logger == null)
            {
                throw new ArgumentNullException("logger");
            }
            LoggingType type = logger.Type;

            if (this.loggers.ContainsKey(type))
            {
                throw new InvalidOperationException(string.Format(CultureInfo.CurrentCulture, "Can't set logger, because one is already set. You must first call RemoveLogger({0}.{1}).", new object[]
                {
                    typeof(LoggingType),
                    type
                }));
            }
            this.loggers.Add(type, logger);
        }