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.
51 lines
1.3 KiB
C#
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));
|
|
// }
|
|
//
|