using log4net.Appender; using log4net.Core; using log4net.Repository.Hierarchy; using log4net; using System; using System.Collections.Generic; namespace TBF.Tools { public class LogChecker : IDisposable { readonly Logger _logger; readonly Level _previousLevel; readonly MemoryAppender _appender = new MemoryAppender(); public LogChecker(string logName, Level levelToCheck) { _logger = (Logger)LogManager.GetLogger(logName).Logger; _logger.AddAppender(_appender); _previousLevel = _logger.Level; _logger.Level = levelToCheck; } public List Messages { get { return new List(_appender.GetEvents()) .ConvertAll(x => x.RenderedMessage); } } public void Dispose() { _logger.Level = _previousLevel; _logger.RemoveAppender(_appender); } } } // Example of use // // using (Tools.LogChecker logChecker = new Tools.LogChecker("RfidData", log4net.Core.Level.Debug)) // { // Execute query using NHibernate // .... // // MessageBox.Show(String.Join(Environment.NewLine,logChecker.Messages)); // } //