This helper class changes the log level from whatever it was to what you define in the parameter, then restores it to what it was before. Handy little helper class.
/// <summary>
/// Executes a log entry at a temporarily changed log level
/// </summary>
/// <param name="logger">Logger instance</param>
/// <param name="level">Temporary log level</param>
/// <param name="action">Logger method call</param>
public static void HardLog(ILog logger, Level level, Action action)
{
Level previousLogLevel = ((log4net.Repository.Hierarchy.Hierarchy)logger.Logger.Repository).Root.Level;
((log4net.Repository.Hierarchy.Hierarchy)logger.Logger.Repository).Root.Level = level;
((log4net.Repository.Hierarchy.Hierarchy)logger.Logger.Repository).RaiseConfigurationChanged(EventArgs.Empty);
action();
((log4net.Repository.Hierarchy.Hierarchy)logger.Logger.Repository).Root.Level = previousLogLevel;
((log4net.Repository.Hierarchy.Hierarchy)logger.Logger.Repository).Root.Level
}