// Copyright (C) Stichting Deltares and State of the Netherlands 2025. All rights reserved. // // This file is part of Riskeer. // // Riskeer is free software: you can redistribute it and/or modify // it under the terms of the GNU Lesser General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public License // along with this program. If not, see . // // All names, logos, and references to "Deltares" are registered trademarks of // Stichting Deltares and remain full property of Stichting Deltares at all times. // All rights reserved. using log4net; using log4net.Core; using log4net.Repository; using log4net.Repository.Hierarchy; namespace Core.Common.TestUtil { public static class LogHelper { /// /// Sets logging level for all current loggers. /// Note: use it only when you need more control on logging, e.g. in unit tests. Otherwise use configuration files. /// /// The logging level to set. public static void SetLoggingLevel(Level level) { ILoggerRepository[] repositories = LogManager.GetAllRepositories(); //Configure all loggers to be at the debug level. foreach (ILoggerRepository repository in repositories) { repository.Threshold = repository.LevelMap[level.ToString()]; var hierarchy = (Hierarchy) repository; ILogger[] loggers = hierarchy.GetCurrentLoggers(); foreach (ILogger logger in loggers) { ((Logger) logger).Level = hierarchy.LevelMap[level.ToString()]; } } //Configure the root logger. var h = (Hierarchy) LogManager.GetRepository(); Logger rootLogger = h.Root; rootLogger.Level = h.LevelMap[level.ToString()]; } /// /// Resets logging configuration, no log messages are sent after that. /// public static void ResetLogging() { LogManager.ResetConfiguration(); SetLoggingLevel(Level.Error); } } }