示例#1
0
        public void CloseSpan(Span span)
        {
            lock (_lock)
            {
                _openSpans--;
                if (span.IsRootSpan)
                {
                    if (_openSpans != 0)
                    {
                        _log.DebugFormat("Some child spans were not finished before the root. {NumberOfOpenSpans}", _openSpans);
                        if (_tracer.IsDebugEnabled)
                        {
                            foreach (var s in _spans.Where(x => !x.IsFinished))
                            {
                                _log.DebugFormat("Span {UnfinishedSpan} was not finished before its root span", s);
                            }

                            // TODO:bertrand Instead detect if we are being garbage collected and warn at that point
                        }
                    }
                    else
                    {
                        _tracer.Write(_spans);
                    }
                }
            }
        }
示例#2
0
 public void CloseSpan(Span span)
 {
     lock (_lock)
     {
         _openSpans--;
         if (_openSpans == 0)
         {
             _tracer.Write(_spans);
         }
     }
 }