LoggerExtensions.cs 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. using Microsoft.Extensions.Logging;
  2. using System;
  3. namespace FastGithub
  4. {
  5. /// <summary>
  6. /// 日志插值字符串扩展
  7. /// </summary>
  8. public static class LoggerExtensions
  9. {
  10. /// <summary>
  11. /// 输出日志
  12. /// </summary>
  13. /// <param name="logger"></param>
  14. /// <param name="level"></param>
  15. /// <param name="formattableString"></param>
  16. public static void Log(this ILogger logger, LogLevel level, FormattableString formattableString)
  17. => logger.Log(level, formattableString.Format, formattableString.GetArguments());
  18. /// <summary>
  19. /// 输出Trace日志
  20. /// </summary>
  21. /// <param name="logger"></param>
  22. /// <param name="formattableString"></param>
  23. public static void LogTrace(this ILogger logger, FormattableString formattableString)
  24. => logger.Log(LogLevel.Trace, formattableString);
  25. /// <summary>
  26. /// 输出Debug日志
  27. /// </summary>
  28. /// <param name="logger"></param>
  29. /// <param name="formattableString"></param>
  30. public static void LogDebug(this ILogger logger, FormattableString formattableString)
  31. => logger.Log(LogLevel.Debug, formattableString);
  32. /// <summary>
  33. /// 输出Information日志
  34. /// </summary>
  35. /// <param name="logger"></param>
  36. /// <param name="formattableString"></param>
  37. public static void LogInformation(this ILogger logger, FormattableString formattableString)
  38. => logger.Log(LogLevel.Information, formattableString);
  39. /// <summary>
  40. /// 输出Warning日志
  41. /// </summary>
  42. /// <param name="logger"></param>
  43. /// <param name="formattableString"></param>
  44. public static void LogWarning(this ILogger logger, FormattableString formattableString)
  45. => logger.Log(LogLevel.Warning, formattableString);
  46. /// <summary>
  47. /// 输出日志
  48. /// </summary>
  49. /// <param name="logger"></param>
  50. /// <param name="formattableString"></param>
  51. public static void LogError(this ILogger logger, FormattableString formattableString)
  52. => logger.Log(LogLevel.Error, formattableString);
  53. /// <summary>
  54. /// 输出Critical日志
  55. /// </summary>
  56. /// <param name="logger"></param>
  57. /// <param name="formattableString"></param>
  58. public static void LogCritical(this ILogger logger, FormattableString formattableString)
  59. => logger.Log(LogLevel.Critical, formattableString);
  60. }
  61. }