private void CheckTriggerLevel(LogEventEntry entry)
 {
     if (_allEventLevel.IsSatisifedBy(entry.Event.Level))
     {
         MarkEventsForWriteOnTrigger(entry);
     }
 }
        public void LogEvent(LogEvent @event)
        {
            var entry = new LogEventEntry(@event, false);

            _eventEntries.Add(entry);
            LastEventTime = @event.Timestamp;
            CheckTriggerLevel(entry);
        }
示例#3
0
 internal LogEventEntryError( int lsn, LogEventEntry e, MethodInfo target, Exception ex )
 {
     Debug.Assert( e != null && target != null && ex != null );
     LSN = lsn;
     _entry = e;
     _target = target;
     _exception = ex;
 }
        private void MarkEventsForWriteOnTrigger(LogEventEntry triggeringEntry)
        {
            var copyOfEvents = _eventEntries.ToArray();

            foreach (var entry in copyOfEvents)
            {
                if (triggeringEntry.IsSiblingOrParentOf(entry))
                {
                    entry.WriteToSink = true;
                }

                if (entry == triggeringEntry)
                {
                    break;
                }
            }
        }
示例#5
0
        protected bool OnEventHandlingException( int iEventMRef, MethodInfo target, Exception ex, ref LogEventEntry ee )
		{
            EEntry e = _eRefs[iEventMRef];
            if( (e.LogOptions & ServiceLogEventOptions.LogErrors) != 0 )
            {
                if( ee != null )
                {
                    _serviceHost.LogEventError( ee, target, ex );
                }
                else
                {
                    ee = _serviceHost.LogEventError( e.Event, target, ex );
                }
            }
            return (e.LogOptions&ServiceLogEventOptions.SilentEventError) != 0;
        }
示例#6
0
 protected void LogEndRaise( LogEventEntry e )
 {
     Debug.Assert( e != null );
     _serviceHost.LogEventEnd( e );
 }
示例#7
0
 protected bool GetLoggerEventForAnyCall( int iEventMRef, out LogEventEntry entry, out ServiceLogEventOptions logOptions )
 {
     EEntry e = _eRefs[iEventMRef];
     logOptions = e.LogOptions & ServiceLogEventOptions.CreateEntryMask;
     entry = logOptions != 0 ? _serviceHost.LogEventEnter( e.Event, logOptions ) : null;
     return true;
 }
示例#8
0
 protected bool GetLoggerEventForNotDisabledCall( int iEventMRef, out LogEventEntry entry, out ServiceLogEventOptions logOptions )
 {
     EEntry e = _eRefs[iEventMRef];
     logOptions = e.LogOptions & ServiceLogEventOptions.CreateEntryMask;
     if( _impl == null || _impl.Status == RunningStatus.Disabled )
     {
         if( (logOptions & ServiceLogEventOptions.SilentEventRunningStatusError) != 0 )
         {
             entry = null;
             if( (logOptions & ServiceLogEventOptions.LogSilentEventRunningStatusError) != 0 )
                 _serviceHost.LogEventNotRunningError( e.Event, true );
             return false;
         }
         throw new ServiceNotAvailableException( _typeInterface );
     }
     entry = logOptions != 0 ? _serviceHost.LogEventEnter( e.Event, logOptions ) : null;
     return true;
 }
            public bool IsSiblingOrParentOf(LogEventEntry entry)
            {
                var nestingLevelRoot = entry.NestingLevel.Take(NestingLevel.Length);

                return(NestingLevel.SequenceEqual(nestingLevelRoot));
            }