Ejemplo n.º 1
0
 protected override void OnGroupOpen( IActivityLogGroup g )
 {
     XmlWriter.WriteStartElement( g.MaskedGroupLevel.ToString() + "s" );
     XmlWriter.WriteAttributeString( "Depth", g.Depth.ToString() );
     XmlWriter.WriteAttributeString( "Level", g.GroupLevel.ToString() );
     XmlWriter.WriteAttributeString( "Text", g.GroupText.ToString() );
 }
Ejemplo n.º 2
0
 public void OnOpenGroup(IActivityLogGroup group)
 {
     lock ( _buffer )
     {
         _buffer.Append(_prefix).AppendFormat(">[{0}]{1}", group.GroupLevel, group.GroupText).AppendLine();
         _prefix += " ";
     }
 }
Ejemplo n.º 3
0
 public void OnGroupClosed( IActivityLogGroup group, IReadOnlyList<ActivityLogGroupConclusion> conclusions )
 {
     lock( _buffer )
     {
         _prefix = _prefix.Substring( 0, _prefix.Length - 1 );
         _buffer.Append( _prefix ).AppendFormat( "<[Closed]{0}", group.GroupText ).AppendLine();
     }
 }
Ejemplo n.º 4
0
 public Entry( IActivityLogGroup d )
 {
     Level = d.GroupLevel;
     Tags = d.GroupTags;
     Text = d.GroupText;
     Exception = d.Exception;
     LogTime = d.LogTime;
 }
Ejemplo n.º 5
0
 public void OnOpenGroup( IActivityLogGroup group )
 {
     if( group.MaskedGroupLevel >= LogLevel.Error )
     {
         string s = DumpErrorText( group.LogTime, group.GroupText, group.MaskedGroupLevel, group.GroupTags, group.EnsureExceptionData() );
         SystemActivityMonitor.HandleError( s );
     }
 }
Ejemplo n.º 6
0
 public void OnOpenGroup( IActivityLogGroup group )
 {
     lock( _buffer )
     {
         _buffer.Append( _prefix ).AppendFormat( ">[{0}]{1}", group.GroupLevel, group.GroupText ).AppendLine();
         _prefix += " ";
     }
 }
Ejemplo n.º 7
0
 protected override void OnGroupOpen( IActivityLogGroup g )
 {
     Entries.Add( new Entry( g ) );
     Writer.WriteLine();
     Writer.Write( new String( '+', g.Depth ) );
     Writer.Write( "{1} ({0})", g.MaskedGroupLevel, g.GroupText );
     if( g.Exception != null ) Writer.Write( "Exception: " + g.Exception.Message );
     if( WriteTags ) Writer.Write( "-[{0}]", g.GroupTags.ToString() );
 }
Ejemplo n.º 8
0
        void IActivityLoggerSink.OnGroupOpen(IActivityLogGroup g)
        {
            TextWriter w = _writer();

            w.Write("{0}▪►-{1}: ", _prefix, g.GroupLevel.ToString());
            _prefix     += "▪  ";
            _prefixLevel = _prefix;
            w.WriteLine(g.GroupText.Replace(Environment.NewLine, Environment.NewLine + _prefixLevel));
        }
Ejemplo n.º 9
0
 void IActivityMonitorClient.OnOpenGroup(IActivityLogGroup group)
 {
     if (_file != null)
     {
         _file.UnicastWriteOpenGroup(group, this);
         ++_currentGroupDepth;
         _prevlogTime = group.Data.LogTime;
         _prevLogType = LogEntryType.OpenGroup;
     }
 }
Ejemplo n.º 10
0
        void IActivityMonitorClient.OnGroupClosed(IActivityLogGroup group, IReadOnlyList <ActivityLogGroupConclusion> conclusions)
        {
            if (_curLevel != -1)
            {
                OnLeaveLevel((LogLevel)_curLevel);
                _curLevel = -1;
            }

            OnGroupClose(group, conclusions);
        }
Ejemplo n.º 11
0
 /// <summary>
 /// Appends any group with level equal or above <see cref="LevelFilter"/> to <see cref="Entries"/>.
 /// </summary>
 /// <param name="group">Log group description.</param>
 protected override void OnOpenGroup(IActivityLogGroup group)
 {
     if ((int)group.GroupLevel >= (int)_filter)
     {
         _entries.Push(new Entry()
         {
             Level = group.GroupLevel, Text = group.GroupText, Exception = group.Exception
         });
     }
 }
Ejemplo n.º 12
0
 void IActivityMonitorClient.OnGroupClosed(IActivityLogGroup group, IReadOnlyList <ActivityLogGroupConclusion>?conclusions)
 {
     if (_file != null)
     {
         _file.UnicastWriteCloseGroup(group, conclusions, this);
         --_currentGroupDepth;
         _prevlogTime = group.CloseLogTime;
         _prevLogType = LogEntryType.CloseGroup;
     }
 }
Ejemplo n.º 13
0
        void IActivityMonitorClient.OnOpenGroup(IActivityLogGroup group)
        {
            if (_curLevel != -1)
            {
                OnLeaveLevel((LogLevel)_curLevel);
                _curLevel = -1;
            }

            OnGroupOpen(group);
        }
Ejemplo n.º 14
0
 public void OnOpenGroup(IActivityLogGroup group)
 {
     if (group.MaskedGroupLevel == LogLevel.Error)
     {
         _onError();
     }
     else if (group.MaskedGroupLevel == LogLevel.Fatal)
     {
         _onFatal();
     }
 }
Ejemplo n.º 15
0
 void IActivityMonitorClient.OnGroupClosed(IActivityLogGroup group, IReadOnlyList <ActivityLogGroupConclusion> conclusions)
 {
     if (_curLevel != -1)
     {
         OnLeaveLevel((LogLevel)_curLevel);
         _curLevel = -1;
     }
     // Has the Group actually been opened?
     if (_openGroups.Count > 0 && _openGroups.Pop())
     {
         OnGroupClose(group, conclusions);
     }
 }
Ejemplo n.º 16
0
 void OnGroupClose(IActivityLogGroup g, IReadOnlyList <ActivityLogGroupConclusion> conclusions)
 {
     Writer.WriteLine();
     Writer.Write(new String('-', g.Depth));
     if (WriteConclusionTraits)
     {
         Writer.Write(String.Join(", ", conclusions.Select(c => c.Text + "-/[/" + c.Tag.ToString() + "/]/")));
     }
     else
     {
         Writer.Write(String.Join(", ", conclusions.Select(c => c.Text)));
     }
 }
Ejemplo n.º 17
0
        void IActivityMonitorClient.OnGroupClosed(IActivityLogGroup group, IReadOnlyList <ActivityLogGroupConclusion> conclusions)
        {
            var h = EnsureChannel();

            if (h != null)
            {
                IMulticastLogEntry e = LogEntry.CreateMulticastCloseGroup(_monitorSource.UniqueId, _prevLogType, _prevlogTime, _currentGroupDepth, group.CloseLogTime, group.GroupLevel, conclusions);
                h.Handle(new GrandOutputEventInfo(e, _monitorSource.Topic));
                --_currentGroupDepth;
                _prevlogTime = group.CloseLogTime;
                _prevLogType = LogEntryType.CloseGroup;
            }
        }
Ejemplo n.º 18
0
        void IActivityMonitorClient.OnOpenGroup(IActivityLogGroup group)
        {
            var h = EnsureChannel();

            if (h != null)
            {
                IMulticastLogEntry e = LogEntry.CreateMulticastOpenGroup(_monitorSource.UniqueId, _prevLogType, _prevlogTime, _currentGroupDepth, group.GroupText, group.LogTime, group.GroupLevel, group.FileName, group.LineNumber, group.GroupTags, group.EnsureExceptionData());
                h.Handle(new GrandOutputEventInfo(e, _monitorSource.Topic));
                ++_currentGroupDepth;
                _prevlogTime = group.LogTime;
                _prevLogType = LogEntryType.OpenGroup;
            }
        }
Ejemplo n.º 19
0
        void IActivityMonitorClient.OnOpenGroup(IActivityLogGroup group)
        {
            if (_central.IsDisposed)
            {
                return;
            }
            Debug.Assert(_monitorSource != null, "Since we are called by the monitor...");
            IMulticastLogEntry e = LogEntry.CreateMulticastOpenGroup(_central.GrandOutpuId, _monitorSource.UniqueId, _prevLogType, _prevlogTime, _currentGroupDepth, group.Data.Text, group.Data.LogTime, group.Data.Level, group.Data.FileName, group.Data.LineNumber, group.Data.Tags, group.Data.ExceptionData);

            _central.Sink.Handle(e);
            ++_currentGroupDepth;
            _prevlogTime = group.Data.LogTime;
            _prevLogType = LogEntryType.OpenGroup;
        }
 /// <summary>
 /// Handles group conclusion.
 /// </summary>
 /// <param name="group">The closing group.</param>
 /// <param name="conclusions">
 /// Mutable conclusions associated to the closing group.
 /// This can be null if no conclusions have been added yet.
 /// It is up to the first client that wants to add a conclusion to instantiate a new List object to carry the conclusions.
 /// </param>
 protected override void OnGroupClosing(IActivityLogGroup group, ref List <ActivityLogGroupConclusion> conclusions)
 {
     if (GenerateConclusion &&
         _current != _root &&
         _current.HasWarnOrError &&
         (conclusions == null || !conclusions.Any(c => c.Tag == TagErrorCounter)))
     {
         if (conclusions == null)
         {
             conclusions = new List <ActivityLogGroupConclusion>();
         }
         conclusions.Add(new ActivityLogGroupConclusion(TagErrorCounter, _current.ToString()));
     }
 }
        /// <summary>
        /// Writes group conclusion and updates internally managed line prefix.
        /// </summary>
        /// <param name="g">Group that must be closed.</param>
        /// <param name="conclusions">Conclusions for the group.</param>
        protected override void OnGroupClose(IActivityLogGroup g, IReadOnlyList <ActivityLogGroupConclusion> conclusions)
        {
            _prefixLevel = _prefix = _prefix.Remove(_prefix.Length - 3);
            if (conclusions.Count == 0)
            {
                return;
            }
            var  w   = _buffer.Clear();
            bool one = false;
            List <ActivityLogGroupConclusion> withMultiLines = null;

            foreach (var c in conclusions)
            {
                if (c.Text.Contains('\n'))
                {
                    if (withMultiLines == null)
                    {
                        withMultiLines = new List <ActivityLogGroupConclusion>();
                    }
                    withMultiLines.Add(c);
                }
                else
                {
                    if (!one)
                    {
                        w.Append(_prefixLevel).Append("< ");
                        one = true;
                    }
                    else
                    {
                        w.Append(" - ");
                    }
                    w.Append(c.Text);
                }
            }
            if (one)
            {
                w.AppendLine();
            }
            if (withMultiLines != null)
            {
                foreach (var c in withMultiLines)
                {
                    w.Append(_prefixLevel).Append("< ");
                    w.AppendMultiLine(_prefixLevel + "  ", c.Text, false);
                    w.AppendLine();
                }
            }
            _writer(_buffer.ToString());
        }
Ejemplo n.º 22
0
 /// <summary>
 /// Sends log to sinks (<see cref="IActivityLoggerSink.OnGroupClose"/>.
 /// </summary>
 /// <param name="group">The closed group.</param>
 /// <param name="conclusions">Texts that conclude the group. Never null but can be empty.</param>
 protected override void OnGroupClosed(IActivityLogGroup group, IReadOnlyList <ActivityLogGroupConclusion> conclusions)
 {
     if (_curLevel != -1)
     {
         foreach (var s in RegisteredSinks)
         {
             s.OnLeaveLevel((LogLevel)_curLevel);
         }
         _curLevel = -1;
     }
     foreach (var s in RegisteredSinks)
     {
         s.OnGroupClose(group, conclusions);
     }
 }
Ejemplo n.º 23
0
 /// <summary>
 /// Sends log to sinks (<see cref="IActivityLoggerSink.OnGroupOpen"/>.
 /// </summary>
 /// <param name="group">The newly opened <see cref="IActivityLogGroup"/>.</param>
 protected override void OnOpenGroup(IActivityLogGroup group)
 {
     if (_curLevel != -1)
     {
         foreach (var s in RegisteredSinks)
         {
             s.OnLeaveLevel((LogLevel)_curLevel);
         }
         _curLevel = -1;
     }
     foreach (var s in RegisteredSinks)
     {
         s.OnGroupOpen(group);
     }
 }
Ejemplo n.º 24
0
 void IActivityMonitorClient.OnOpenGroup(IActivityLogGroup group)
 {
     if (_curLevel != -1)
     {
         OnLeaveLevel((LogLevel)_curLevel);
         _curLevel = -1;
     }
     if (!CanOutputGroup(group.MaskedGroupLevel))
     {
         _openGroups.Push(false);
         return;
     }
     _openGroups.Push(true);
     OnGroupOpen(group);
 }
Ejemplo n.º 25
0
 void OnGroupOpen(IActivityLogGroup g)
 {
     Entries.Add(new Entry(g));
     Writer.WriteLine();
     Writer.Write(new String('+', g.Depth));
     Writer.Write("{1} ({0})", g.MaskedGroupLevel, g.GroupText);
     if (g.Exception != null)
     {
         Writer.Write("Exception: " + g.Exception.Message);
     }
     if (WriteTags)
     {
         Writer.Write("-[{0}]", g.GroupTags.ToString());
     }
 }
Ejemplo n.º 26
0
        void IActivityLoggerSink.OnGroupClose(IActivityLogGroup g, IReadOnlyList <ActivityLogGroupConclusion> conclusions)
        {
            TextWriter w = _writer();

            if (g.Exception != null)
            {
                DumpException(w, !g.IsGroupTextTheExceptionMessage, g.Exception);
            }
            _prefixLevel = _prefix = _prefix.Remove(_prefix.Length - 3);
            foreach (var c in conclusions)
            {
                string text = "◄▪-" + c.Conclusion;
                w.WriteLine(_prefixLevel + text.Replace(_prefixLevel + Environment.NewLine, Environment.NewLine + _prefixLevel + "   "));
            }
        }
Ejemplo n.º 27
0
 /// <summary>
 /// Appends or updates the last <see cref="PathElement"/> of <see cref="DynamicPath"/>
 /// and handles errors or warning.
 /// </summary>
 /// <param name="group">The newly opened <see cref="IActivityLogGroup"/>.</param>
 protected override void OnOpenGroup(IActivityLogGroup group)
 {
     if (_currentIsGroupClosed)
     {
         HandleCurrentGroupIsClosed();
     }
     if (_currentIsGroup || _current == null)
     {
         _current = new PathElement();
         _path.Add(_current);
     }
     _currentIsGroup = true;
     _current.Level  = group.GroupLevel;
     _current.Text   = group.GroupText;
     CheckSnapshot();
 }
Ejemplo n.º 28
0
        void IActivityMonitorClient.OnGroupClosed(IActivityLogGroup group, IReadOnlyList <ActivityLogGroupConclusion>?conclusions)
        {
            if (_central.IsDisposed)
            {
                return;
            }
            Debug.Assert(_monitorSource != null, "Since we are called by the monitor...");
            IMulticastLogEntry e = LogEntry.CreateMulticastCloseGroup(_central.GrandOutpuId,
                                                                      _monitorSource.UniqueId,
                                                                      _prevLogType,
                                                                      _prevlogTime,
                                                                      _currentGroupDepth,
                                                                      group.CloseLogTime,
                                                                      group.Data.Level,
                                                                      conclusions);

            _central.Sink.Handle(e);
            --_currentGroupDepth;
            _prevlogTime = group.CloseLogTime;
            _prevLogType = LogEntryType.CloseGroup;
        }
        /// <summary>
        /// Writes a group opening.
        /// </summary>
        /// <param name="g">Group information.</param>
        protected override void OnGroupOpen(IActivityLogGroup g)
        {
            var    w          = _buffer.Clear();
            string levelLabel = g.MaskedGroupLevel.ToString();
            string start      = string.Format("{0}> {1}: ", _prefix, levelLabel);

            _prefix     += "|  ";
            _prefixLevel = _prefix;
            string prefixLabel = _prefixLevel + new string( ' ', levelLabel.Length + 1 );

            w.Append(start).AppendMultiLine(prefixLabel, g.GroupText, false);
            if (_currentTags != g.GroupTags)
            {
                w.Append(" -[").Append(g.GroupTags).Append(']');
                _currentTags = g.GroupTags;
            }
            w.AppendLine();
            if (g.Exception != null)
            {
                DumpException(w, _prefix, !g.IsGroupTextTheExceptionMessage, g.Exception);
            }
            _writer(_buffer.ToString());
        }
Ejemplo n.º 30
0
 /// <summary>
 /// Called for each <see cref="IActivityMonitor.UnfilteredOpenGroup"/>.
 /// Does nothing by default.
 /// </summary>
 /// <param name="group">The newly opened <see cref="IActivityLogGroup"/>.</param>
 protected virtual void OnOpenGroup( IActivityLogGroup group )
 {
 }
Ejemplo n.º 31
0
 /// <summary>
 /// Called once the user conclusions are known at the group level but before 
 /// the group is actually closed: clients can update the conclusions for the group.
 /// Does nothing by default.
 /// </summary>
 /// <param name="group">The closing group.</param>
 /// <param name="conclusions">
 /// Mutable conclusions associated to the closing group. 
 /// This can be null if no conclusions have been added yet. 
 /// It is up to the first client that wants to add a conclusion to instantiate a new List object to carry the conclusions.
 /// </param>
 protected virtual void OnGroupClosing( IActivityLogGroup group, ref List<ActivityLogGroupConclusion> conclusions )
 {
 }
Ejemplo n.º 32
0
 public void OnGroupClose(IActivityLogGroup g, IReadOnlyList <ActivityLogGroupConclusion> conclusions)
 {
     Writer.WriteLine();
     Writer.Write(new String('-', g.Depth));
     Writer.Write(String.Join(", ", conclusions.Select(c => c.Conclusion)));
 }
Ejemplo n.º 33
0
 void IActivityLoggerSink.OnGroupClose( IActivityLogGroup g, IReadOnlyList<ActivityLogGroupConclusion> conclusions )
 {
     TextWriter w = _writer();
     if( g.Exception != null )
     {
         DumpException( w, !g.IsGroupTextTheExceptionMessage, g.Exception );
     }
     _prefixLevel = _prefix = _prefix.Remove( _prefix.Length - 3 );
     foreach( var c in conclusions )
     {
         string text = "◄▪-" + c.Conclusion;
         w.WriteLine( _prefixLevel + text.Replace( _prefixLevel + Environment.NewLine, Environment.NewLine + _prefixLevel + "   " ) );
     }
 }
Ejemplo n.º 34
0
 public void OnGroupClose( IActivityLogGroup g, IReadOnlyList<ActivityLogGroupConclusion> conclusions )
 {
     XmlWriter.WriteEndElement();
     XmlWriter.Flush();
 }
Ejemplo n.º 35
0
 public void OnGroupClose(IActivityLogGroup g, IReadOnlyList <ActivityLogGroupConclusion> conclusions)
 {
     XmlWriter.WriteEndElement();
     XmlWriter.Flush();
 }
Ejemplo n.º 36
0
 protected override void OnGroupClose( IActivityLogGroup g, IReadOnlyList<ActivityLogGroupConclusion> conclusions )
 {
     Writer.WriteLine();
     Writer.Write( new String( '-', g.Depth ) );
     if( WriteConclusionTraits )
     {
         Writer.Write( String.Join( ", ", conclusions.Select( c => c.Text + "-/[/"+ c.Tag.ToString() +"/]/" ) ) );
     }
     else
     {
         Writer.Write( String.Join( ", ", conclusions.Select( c => c.Text ) ) );
     }
 }
Ejemplo n.º 37
0
 /// <summary>
 /// Sends log to sinks (<see cref="IActivityLoggerSink.OnGroupClose"/>.
 /// </summary>
 /// <param name="group">The closed group.</param>
 /// <param name="conclusions">Texts that conclude the group. Never null but can be empty.</param>
 protected override void OnGroupClosed( IActivityLogGroup group, IReadOnlyList<ActivityLogGroupConclusion> conclusions )
 {
     if( _curLevel != -1 )
     {
         foreach( var s in RegisteredSinks ) s.OnLeaveLevel( (LogLevel)_curLevel );
         _curLevel = -1;
     }
     foreach( var s in RegisteredSinks ) s.OnGroupClose( group, conclusions );
 }
Ejemplo n.º 38
0
 public void OnGroupClose( IActivityLogGroup g, IReadOnlyList<ActivityLogGroupConclusion> conclusions )
 {
     Writer.WriteLine();
     Writer.Write( new String( '-', g.Depth ) );
     Writer.Write( String.Join( ", ", conclusions.Select( c => c.Conclusion ) ) );
 }
Ejemplo n.º 39
0
 protected override void OnGroupClosed( IActivityLogGroup group, IReadOnlyList<ActivityLogGroupConclusion> conclusions )
 {
 }
Ejemplo n.º 40
0
 public void OnGroupOpen( IActivityLogGroup g )
 {
     Writer.WriteLine();
     Writer.Write( new String( '+', g.Depth ) );
     Writer.Write( "{1} ({0})", g.GroupLevel, g.GroupText );
 }
Ejemplo n.º 41
0
 void IActivityMonitorClient.OnGroupClosed( IActivityLogGroup group, IReadOnlyList<ActivityLogGroupConclusion> conclusions )
 {
     var h = EnsureChannel();
     if( h != null )
     {
         IMulticastLogEntry e = LogEntry.CreateMulticastCloseGroup( _monitorSource.UniqueId, _prevLogType, _prevlogTime, _currentGroupDepth, group.CloseLogTime, group.GroupLevel, conclusions );
         h.Handle( new GrandOutputEventInfo( e, _monitorSource.Topic ) );
         --_currentGroupDepth;
         _prevlogTime = group.CloseLogTime;
         _prevLogType = LogEntryType.CloseGroup;
     }
 }
Ejemplo n.º 42
0
 void IActivityMonitorClient.OnOpenGroup( IActivityLogGroup group )
 {
     var h = EnsureChannel();
     if( h != null )
     {
         IMulticastLogEntry e = LogEntry.CreateMulticastOpenGroup( _monitorSource.UniqueId, _prevLogType, _prevlogTime, _currentGroupDepth, group.GroupText, group.LogTime, group.GroupLevel, group.FileName, group.LineNumber, group.GroupTags, group.EnsureExceptionData() );
         h.Handle( new GrandOutputEventInfo( e, _monitorSource.Topic ) );
         ++_currentGroupDepth;
         _prevlogTime = group.LogTime;
         _prevLogType = LogEntryType.OpenGroup;
     }
 }
Ejemplo n.º 43
0
 /// <summary>
 /// Called when the group is actually closed.
 /// Does nothing by default.
 /// </summary>
 /// <param name="group">The closed group.</param>
 /// <param name="conclusions">Text that conclude the group. Never null but can be empty.</param>
 protected virtual void OnGroupClosed( IActivityLogGroup group, IReadOnlyList<ActivityLogGroupConclusion> conclusions )
 {
 }
Ejemplo n.º 44
0
 // Security if OnGroupClosed is implemented one day on ActivityLoggerErrorCounter.
 protected override void OnGroupClosed(IActivityLogGroup group, IReadOnlyList <ActivityLogGroupConclusion> conclusions)
 {
 }
        /// <summary>
        /// Writes a group opening.
        /// </summary>
        /// <param name="g">Group information.</param>
        protected override void OnGroupOpen( IActivityLogGroup g )
        {
            var w = _buffer.Clear();
            string levelLabel = g.MaskedGroupLevel.ToString();
            string start = string.Format( "{0}> {1}: ", _prefix, levelLabel );
            _prefix += "|  ";
            _prefixLevel = _prefix;
            string prefixLabel = _prefixLevel + new string( ' ', levelLabel.Length + 1 );

            w.Append( start ).AppendMultiLine( prefixLabel, g.GroupText, false );
            if( _currentTags != g.GroupTags )
            {
                w.Append( " -[" ).Append( g.GroupTags ).Append( ']' );
                _currentTags = g.GroupTags;
            }
            w.AppendLine();
            if( g.Exception != null )
            {
                DumpException( w, _prefix, !g.IsGroupTextTheExceptionMessage, g.Exception );
            }
            _writer( _buffer.ToString() );
        }
Ejemplo n.º 46
0
 /// <summary>
 /// Sends log to sinks (<see cref="IActivityLoggerSink.OnGroupOpen"/>.
 /// </summary>
 /// <param name="group">The newly opened <see cref="IActivityLogGroup"/>.</param>
 protected override void OnOpenGroup( IActivityLogGroup group )
 {
     if( _curLevel != -1 )
     {
         foreach( var s in RegisteredSinks ) s.OnLeaveLevel( (LogLevel)_curLevel );
         _curLevel = -1;
     }
     foreach( var s in RegisteredSinks ) s.OnGroupOpen( group );
 }
 /// <summary>
 /// Writes group conclusion and updates internally managed line prefix.
 /// </summary>
 /// <param name="g">Group that must be closed.</param>
 /// <param name="conclusions">Conclusions for the group.</param>
 protected override void OnGroupClose( IActivityLogGroup g, IReadOnlyList<ActivityLogGroupConclusion> conclusions )
 {
     _prefixLevel = _prefix = _prefix.Remove( _prefix.Length - 3 );
     if( conclusions.Count == 0 ) return;
     var w = _buffer.Clear();
     bool one = false;
     List<ActivityLogGroupConclusion> withMultiLines = null;
     foreach( var c in conclusions )
     {
         if( c.Text.Contains( '\n' ) )
         {
             if( withMultiLines == null ) withMultiLines = new List<ActivityLogGroupConclusion>();
             withMultiLines.Add( c );
         }
         else
         {
             if( !one )
             {
                 w.Append( _prefixLevel ).Append( "< " );
                 one = true;
             }
             else w.Append( " - " );
             w.Append( c.Text );
         }
     }
     if( one ) w.AppendLine();
     if( withMultiLines != null )
     {
         foreach( var c in withMultiLines )
         {
             w.Append( _prefixLevel ).Append( "< " );
             w.AppendMultiLine( _prefixLevel + "  ", c.Text, false );
             w.AppendLine();
         }
     }
     _writer( _buffer.ToString() );
 }
Ejemplo n.º 48
0
 public void OnGroupOpen( IActivityLogGroup g )
 {
     XmlWriter.WriteStartElement( g.GroupLevel.ToString() + "s" );
     XmlWriter.WriteAttributeString( "Depth", g.Depth.ToString() );
     XmlWriter.WriteAttributeString( "Level", g.GroupLevel.ToString() );
     XmlWriter.WriteAttributeString( "Text", g.GroupText.ToString() );
 }
Ejemplo n.º 49
0
 protected override void OnGroupClosing(IActivityLogGroup group, IList <ActivityLogGroupConclusion> conclusions)
 {
 }
Ejemplo n.º 50
0
 void IActivityMonitorClient.OnOpenGroup( IActivityLogGroup group )
 {
     if( _file != null )
     {
         _file.UnicastWriteOpenGroup( group, this );
         ++_currentGroupDepth;
         _prevlogTime = group.LogTime;
         _prevLogType = LogEntryType.OpenGroup;
     }
 }
Ejemplo n.º 51
0
 /// <summary>
 /// Updates error counters.
 /// </summary>
 /// <param name="group">The newly opened <see cref="IActivityLogGroup"/>.</param>
 protected override void OnOpenGroup(IActivityLogGroup group)
 {
     _current = new State(_current);
     _current.CatchLevel(group.GroupLevel);
 }
Ejemplo n.º 52
0
 void IActivityMonitorClient.OnGroupClosed( IActivityLogGroup group, IReadOnlyList<ActivityLogGroupConclusion> conclusions )
 {
     if( _file != null )
     {
         _file.UnicastWriteCloseGroup( group, conclusions, this );
         --_currentGroupDepth;
         _prevlogTime = group.CloseLogTime;
         _prevLogType = LogEntryType.CloseGroup;
     }
 }
Ejemplo n.º 53
0
 void IActivityMonitorClient.OnOpenGroup( IActivityLogGroup group )
 {
     OnOpenGroup( group );
 }
Ejemplo n.º 54
0
 void IActivityMonitorClient.OnGroupClosing( IActivityLogGroup group, ref List<ActivityLogGroupConclusion> conclusions )
 {
     OnGroupClosing( group, ref conclusions );
 }
Ejemplo n.º 55
0
 public void OnGroupOpen(IActivityLogGroup g)
 {
     Writer.WriteLine();
     Writer.Write(new String('+', g.Depth));
     Writer.Write("{1} ({0})", g.GroupLevel, g.GroupText);
 }
Ejemplo n.º 56
0
 void IActivityMonitorClient.OnGroupClosed( IActivityLogGroup group, IReadOnlyList<ActivityLogGroupConclusion> conclusions )
 {
     OnGroupClosed( group, conclusions );
 }
Ejemplo n.º 57
0
 // Security if OnGroupClosing is implemented once on ActivityLoggerTap.
 protected override void OnGroupClosing( IActivityLogGroup group, IList<ActivityLogGroupConclusion> conclusions )
 {
 }
Ejemplo n.º 58
0
 void IActivityLoggerSink.OnGroupOpen( IActivityLogGroup g )
 {
     TextWriter w = _writer();
     w.Write( "{0}▪►-{1}: ", _prefix, g.GroupLevel.ToString() );
     _prefix += "▪  ";
     _prefixLevel = _prefix;
     w.WriteLine( g.GroupText.Replace( Environment.NewLine, Environment.NewLine + _prefixLevel ) );
 }
Ejemplo n.º 59
0
 void IActivityMonitorClient.OnGroupClosing(IActivityLogGroup group, ref List <ActivityLogGroupConclusion>?conclusions)
 {
 }
Ejemplo n.º 60
0
 protected override void OnOpenGroup( IActivityLogGroup group )
 {
 }