/// <summary> /// Event which indicates Informational or Error event /// </summary> /// <param name="level">Event level</param> /// <param name="description">The description</param> public void LogEvent(LogEvent.Level level, string description) { LogEventHandler handler = Event; if (handler != null) { handler(level, description); } }
public void Receive(IEvent @event, object sender) { if (@event == null) { throw new ArgumentNullException(nameof(@event)); } bool highlight = @event is IHighlightEvent; switch (@event) { case BeginFrameEvent _: while (_queuedEvents.TryDequeue(out var queuedEvent)) { try { switch (queuedEvent) { case IAsyncEvent <bool> boolEvent: _exchange.RaiseAsync <bool>(boolEvent, this, x => { Console.WriteLine($"{boolEvent}: {x}"); }); break; case IAsyncEvent <int> intEvent: _exchange.RaiseAsync <int>(intEvent, this, x => { Console.WriteLine($"{intEvent}: {x}"); }); break; default: _exchange.Raise(queuedEvent, this); break; } } catch (Exception exception) { Console.WriteLine("Error: {0}", exception.Message); } } break; case ClearConsoleEvent _: break; // Handled by loggers directly case SetLogLevelEvent e: _logLevel = e.Level; break; case IVerboseEvent _: break; case LogEvent e: { if (e.Severity < _logLevel) { break; } Log?.Invoke(this, new LogEventArgs { Time = DateTime.Now, Nesting = _exchange.Nesting, Message = e.Message, Color = e.Severity switch { LogEvent.Level.Critical => Console.ForegroundColor = ConsoleColor.Red, LogEvent.Level.Error => Console.ForegroundColor = ConsoleColor.Red, LogEvent.Level.Warning => Console.ForegroundColor = ConsoleColor.Yellow, _ => Console.ForegroundColor = ConsoleColor.Gray, } }); break; }
public SetLogLevelEvent(LogEvent.Level level) { Level = level; }