ILogSink.cs 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. namespace Avalonia.Logging
  2. {
  3. /// <summary>
  4. /// Defines a sink for Avalonia logging messages.
  5. /// </summary>
  6. public interface ILogSink
  7. {
  8. /// <summary>
  9. /// Checks if given log level and area is enabled.
  10. /// </summary>
  11. /// <param name="level">The log event level.</param>
  12. /// <param name="area">The log area.</param>
  13. /// <returns><see langword="true"/> if given log level is enabled.</returns>
  14. bool IsEnabled(LogEventLevel level, string area);
  15. /// <summary>
  16. /// Logs an event.
  17. /// </summary>
  18. /// <param name="level">The log event level.</param>
  19. /// <param name="area">The area that the event originates.</param>
  20. /// <param name="source">The object from which the event originates.</param>
  21. /// <param name="messageTemplate">The message template.</param>
  22. void Log(
  23. LogEventLevel level,
  24. string area,
  25. object? source,
  26. string messageTemplate);
  27. /// <summary>
  28. /// Logs a new event.
  29. /// </summary>
  30. /// <param name="level">The log event level.</param>
  31. /// <param name="area">The area that the event originates.</param>
  32. /// <param name="source">The object from which the event originates.</param>
  33. /// <param name="messageTemplate">The message template.</param>
  34. /// <param name="propertyValues">The message property values.</param>
  35. void Log(
  36. LogEventLevel level,
  37. string area,
  38. object? source,
  39. string messageTemplate,
  40. params object?[] propertyValues);
  41. }
  42. }