/// <summary> /// Fires <see cref="EventTraced"/> if the instance is currently tracing. /// </summary> /// <param name="eventName"></param> /// <param name="verbosity"></param> public void LogEvent(string eventName, EventVerbosity verbosity) { if (IsTracing) { EventTraced?.Invoke(this, EventArgs.Empty); } }
/// <summary> /// Constructor that uses application name /// </summary> /// <param name="message">The message of the event or error</param> /// <param name="verbosity">Verbosity level as enumerated</param> /// <param name="appName"> Appication name</param> /// <param name="processId"> Process ID</param> public Event(String message, EventVerbosity verbosity, String appName, int processId) { eventMessage = message; verbosityLevel = verbosity; processID = processId; applicationName = appName; switch(verbosity) { case EventVerbosity.DEBUG: case EventVerbosity.EVENT: case EventVerbosity.INFO: basicType = EventLogEntryType.Information; break; case EventVerbosity.WARN_LOW: case EventVerbosity.WARN_MID: case EventVerbosity.WARN_HIGH: basicType = EventLogEntryType.Warning; break; case EventVerbosity.ERROR: case EventVerbosity.FATAL: basicType = EventLogEntryType.Error; break; default: break; } }
/// <summary> /// Logs an ETW event with the desired name. /// </summary> /// <param name="eventName"></param> /// <param name="verbosity">The verbosity to log the event with.</param> /// <exception cref="ObjectDisposedException"></exception> public void LogEvent(string eventName, EventVerbosity verbosity) { if (this.disposed) { throw new ObjectDisposedException("this"); } LogEvent(eventName, null, verbosity); }
/// <summary> /// Logs an event with the desired payload. /// </summary> /// <param name="eventName">The name of the event to log.</param> /// <param name="fields">Payload to associate with the event.</param> /// <param name="verbosity">The verbosity to log the event with.</param> /// <exception cref="ObjectDisposedException"></exception> public void LogEvent(string eventName, LoggingFields fields, EventVerbosity verbosity) { if (this.disposed) { throw new ObjectDisposedException("this"); } fields = fields ?? new LoggingFields(); if (verbosity == EventVerbosity.Critical) { fields.AddString("StackTrace", Environment.StackTrace); } this.logger.LogEvent(eventName, fields, GetLoggingLevel(verbosity)); }
/// <summary> /// Maps SariphLib <see cref="EventVerbosity"/> values to ETW <see cref="LoggingLevel"/> values. /// </summary> /// <param name="verbosity"></param> /// <returns></returns> private static LoggingLevel GetLoggingLevel(EventVerbosity verbosity) { switch (verbosity) { case EventVerbosity.Critical: return(LoggingLevel.Critical); case EventVerbosity.Info: return(LoggingLevel.Information); case EventVerbosity.Verbose: return(LoggingLevel.Verbose); default: throw new InvalidOperationException("Invalid enum value"); } }
/// <summary> /// Logs an event with context about the calling function. Verbosity is /// </summary> /// <param name="eventName">Event to log.</param> /// <param name="fields">Fields to include with the event.</param> /// <param name="verbosity">Verbosity for the logged event.</param> /// <param name="context">Context to include in the log.</param> protected void LogEventWithContext(string eventName, LoggingFields fields = null, EventVerbosity verbosity = EventVerbosity.Info, [CallerMemberName] string context = null) { fields = fields ?? new LoggingFields(); fields.AddString("Context", context); Logger?.LogEvent(eventName, fields, verbosity); }
/// <summary> /// Fires <see cref="EventTraced"/> if the instance is currently tracing. /// </summary> /// <param name="eventName"></param> /// <param name="fields"></param> /// <param name="verbosity"></param> public void LogEvent(string eventName, LoggingFields fields, EventVerbosity verbosity) { LogEvent(eventName, verbosity); }
public int compareVerbosity(EventVerbosityLevels vl, EventVerbosity v) { switch (vl) { case EventVerbosityLevels.ALL: return -1; break; case EventVerbosityLevels.EVENT: if (v == EventVerbosity.EVENT) return 0; else return -1; break; case EventVerbosityLevels.DEBUG: if (v == EventVerbosity.EVENT) return 1; else if (v == EventVerbosity.DEBUG) return 0; else return -1; break; case EventVerbosityLevels.INFO: if (v < EventVerbosity.INFO) return 1; else if (v == EventVerbosity.INFO) return 0; else return -1; break; case EventVerbosityLevels.WARN_LOW: if (v < EventVerbosity.WARN_LOW) return 1; else if (v == EventVerbosity.WARN_LOW) return 0; else return -1; break; case EventVerbosityLevels.WARN_MID: if (v < EventVerbosity.WARN_MID) return 1; else if (v == EventVerbosity.WARN_MID) return 0; else return -1; break; case EventVerbosityLevels.WARN_HIGH: if (v < EventVerbosity.WARN_HIGH) return 1; else if (v == EventVerbosity.WARN_HIGH) return 0; else return -1; break; case EventVerbosityLevels.ERROR: if (v < EventVerbosity.ERROR) return 1; else if (v == EventVerbosity.ERROR) return 0; else return -1; break; case EventVerbosityLevels.FATAL: if (v == EventVerbosity.FATAL) return 0; else return 1; break; case EventVerbosityLevels.OFF: default: return 1; } }
/// <summary> /// No-op. /// </summary> /// <param name="eventName"></param> /// <param name="fields"></param> /// <param name="verbosity"></param> public void LogEvent(string eventName, LoggingFields fields, EventVerbosity verbosity) { return; }
/// <summary> /// No-op. /// </summary> /// <param name="eventName"></param> /// <param name="verbosity"></param> public void LogEvent(string eventName, EventVerbosity verbosity) { return; }