public bool SetFilterLogLevel(LogLevel level)
        {
            if (level != null && level != LogLevel.Verbose) // no need to filter on verbose
            {
                if (m_levelFilter == null)
                {
                    m_levelFilter = new ConsoleViewLogLevelFilter(level);
                    bool shouldAppend = this.HasFilters; // not the first filter

                    AddFilter(m_levelFilter);

                    return shouldAppend ? AppendFilter(m_levelFilter) : ApplyFilter(m_levelFilter);
                }

                LogLevel oldLevel = m_levelFilter.Level;
                m_levelFilter.Level = level;

                if (oldLevel.Priority < level.Priority) // can only decrease filtered items count: e.g. 'debug' -> 'error'
                {
                    return AppendFilter(m_levelFilter);
                }

                if (oldLevel.Priority > level.Priority) // can increase filtered items count: e.g. 'error' -> 'debug'
                {
                    return ApplyFilter(this);
                }
            }
            else if (m_levelFilter != null) // remove existing filter
            {
                RemoveFilter(m_levelFilter);
                m_levelFilter = null;

                return ApplyFilter(this);
            }

            return false;
        }
Esempio n. 2
0
        public bool SetFilterLogLevel(LogLevel level)
        {
            if (level != null && level != LogLevel.Verbose) // no need to filter on verbose
            {
                if (m_levelFilter == null)
                {
                    m_levelFilter = new ConsoleViewLogLevelFilter(level);
                    bool shouldAppend = this.HasFilters; // not the first filter

                    AddFilter(m_levelFilter);

                    return(shouldAppend ? AppendFilter(m_levelFilter) : ApplyFilter(m_levelFilter));
                }

                LogLevel oldLevel = m_levelFilter.Level;
                m_levelFilter.Level = level;

                if (oldLevel.Priority < level.Priority) // can only decrease filtered items count: e.g. 'debug' -> 'error'
                {
                    return(AppendFilter(m_levelFilter));
                }

                if (oldLevel.Priority > level.Priority) // can increase filtered items count: e.g. 'error' -> 'debug'
                {
                    return(ApplyFilter(this));
                }
            }
            else if (m_levelFilter != null) // remove existing filter
            {
                RemoveFilter(m_levelFilter);
                m_levelFilter = null;

                return(ApplyFilter(this));
            }

            return(false);
        }