ModbusLogger.cs 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. namespace NModbus.Logging
  2. {
  3. /// <summary>
  4. /// Base class for Modbus loggers.
  5. /// </summary>
  6. public abstract class ModbusLogger : IModbusLogger
  7. {
  8. protected ModbusLogger(LoggingLevel minimumLoggingLevel)
  9. {
  10. MinimumLoggingLevel = minimumLoggingLevel;
  11. }
  12. protected LoggingLevel MinimumLoggingLevel { get; }
  13. /// <summary>
  14. /// Returns true if the level should be loggged, false otherwise.
  15. /// </summary>
  16. /// <param name="level"></param>
  17. /// <returns></returns>
  18. public bool ShouldLog(LoggingLevel level)
  19. {
  20. return level >= MinimumLoggingLevel;
  21. }
  22. /// <summary>
  23. /// Log the specified message at the specified level.
  24. /// </summary>
  25. /// <param name="level"></param>
  26. /// <param name="message"></param>
  27. public void Log(LoggingLevel level, string message)
  28. {
  29. if (ShouldLog(level))
  30. {
  31. LogCore(level, message);
  32. }
  33. }
  34. /// <summary>
  35. /// Override this method to implement logging behavior. This function will only be called if ShouldLog(level) is true.
  36. /// </summary>
  37. /// <param name="level"></param>
  38. /// <param name="message"></param>
  39. protected abstract void LogCore(LoggingLevel level, string message);
  40. }
  41. }