/// <summary> /// Inspects the log level of the event data and triggers the corresponding event if there is a listener. /// </summary> /// <param name="e">The <see cref="LogEventArgs"/> instance containing the event data.</param> internal static void RaiseException(LogEventArgs e) { if (MuteMessages) { return; } if (e != null) { switch (e.LogLevel) { case LogLevelType.Verbose: OnVerboseMessage?.Invoke(e); break; case LogLevelType.Debug: OnDebugMessage?.Invoke(e); break; case LogLevelType.Info: OnInfoMessage?.Invoke(e); break; case LogLevelType.Warn: OnWarnMessage?.Invoke(e); break; case LogLevelType.Error: OnErrorMessage?.Invoke(e); break; case LogLevelType.Fatal: OnFatalMessage?.Invoke(e); break; } } }
/// <summary> /// Clears the listeners that may be attached to the events. Typically used for testing. /// </summary> public static void ClearListeners() { try { if (OnDebugMessage != null) { foreach (Delegate invoker in OnDebugMessage.GetInvocationList()) { OnDebugMessage -= (LogEventHandler)invoker; } } } catch (Exception e) { Debug.WriteLine(e); } try { if (OnErrorMessage != null) { foreach (Delegate invoker in OnErrorMessage.GetInvocationList()) { OnErrorMessage -= (LogEventHandler)invoker; } } } catch (Exception e) { Debug.WriteLine(e); } try { if (OnFatalMessage != null) { foreach (Delegate invoker in OnFatalMessage.GetInvocationList()) { OnFatalMessage -= (LogEventHandler)invoker; } } } catch (Exception e) { Debug.WriteLine(e); } try { if (OnInfoMessage != null) { foreach (Delegate invoker in OnInfoMessage.GetInvocationList()) { OnInfoMessage -= (LogEventHandler)invoker; } } } catch (Exception e) { Debug.WriteLine(e); } try { if (OnVerboseMessage != null) { foreach (Delegate invoker in OnVerboseMessage.GetInvocationList()) { OnVerboseMessage -= (LogEventHandler)invoker; } } } catch (Exception e) { Debug.WriteLine(e); } try { if (OnWarnMessage != null) { foreach (Delegate invoker in OnWarnMessage.GetInvocationList()) { OnWarnMessage -= (LogEventHandler)invoker; } } } catch (Exception e) { Debug.WriteLine(e); } }