public bool ShouldTrace()

in src/MIMConfigDocumenter/Logger.cs [184:239]


        public bool ShouldTrace(TraceEventType traceEventType)
        {
            if (this.currentSourceLevel == SourceLevels.Off)
            {
                return false;
            }

            var activityTracing = (this.currentSourceLevel & SourceLevels.ActivityTracing) == SourceLevels.ActivityTracing;
            var critical = (this.currentSourceLevel & SourceLevels.Critical) == SourceLevels.Critical;
            var error = critical || (this.currentSourceLevel & SourceLevels.Error) == SourceLevels.Error;
            var warning = error || (this.currentSourceLevel & SourceLevels.Warning) == SourceLevels.Warning;
            var info = warning || (this.currentSourceLevel & SourceLevels.Information) == SourceLevels.Information;
            var verbose = info || (this.currentSourceLevel & SourceLevels.Verbose) == SourceLevels.Verbose;

            if (traceEventType <= TraceEventType.Start)
            {
                if (traceEventType > TraceEventType.Information)
                {
                    if (traceEventType == TraceEventType.Verbose)
                    {
                        return verbose;
                    }

                    if (traceEventType == TraceEventType.Start)
                    {
                        return activityTracing;
                    }
                }
                else
                {
                    switch (traceEventType)
                    {
                        case TraceEventType.Critical:
                        case TraceEventType.Error:
                            return error;
                        case TraceEventType.Warning:
                            return warning;
                        case TraceEventType.Information:
                            return info;
                    }
                }
            }
            else if (traceEventType <= TraceEventType.Suspend)
            {
                if (traceEventType == TraceEventType.Stop || traceEventType == TraceEventType.Suspend)
                {
                    return activityTracing;
                }
            }
            else if (traceEventType == TraceEventType.Resume || traceEventType == TraceEventType.Transfer)
            {
                return activityTracing;
            }

            return false;
        }