tbf/TBF/Tools/LogChecker.cs
Michal Buzik bf4fb469da Add initial implementation for AppDiagnostic project
This commit introduces the AppDiagnostic project structure, including core components like `MainForm`, logging utilities (`LogAdapter`, `LogFilter`), and configuration files. It integrates with `log4net` for logging and uses `SharedComponents` for shared utilities.
2025-09-07 22:13:58 +02:00

51 lines
1.3 KiB
C#

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<string> Messages
{
get
{
return new List<log4net.Core.LoggingEvent>(_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));
// }
//