LogSetup.cs 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. using System;
  2. using Microsoft.Extensions.DependencyInjection;
  3. using Microsoft.Extensions.Logging;
  4. namespace gpt_api.Web.Core.Setup
  5. {
  6. /// <summary>
  7. /// 日志扩展集成
  8. /// </summary>
  9. public static class LogSetup
  10. {
  11. /// <summary>
  12. /// 添加日志组件扩展集成
  13. /// </summary>
  14. /// <param name="services"></param>
  15. public static void AddLogSetup(this IServiceCollection services)
  16. {
  17. //全局webapi监听日志
  18. services.AddMvcFilter<LoggingMonitorAttribute>();
  19. //添加日志输入到文件配置,每天创建一个日志文件
  20. services.AddFileLogging("logs/{0:yyyy}-{0:MM}-{0:dd}/info.log", options =>
  21. {
  22. options.WriteFilter = (logMsg) =>
  23. {
  24. return logMsg.LogLevel == LogLevel.Information;
  25. };
  26. options.FileNameRule = fileName =>
  27. {
  28. return string.Format(fileName, DateTime.UtcNow);
  29. };
  30. options.DateFormat = "yyyy-MM-dd HH:mm:ss(zzz) dddd";
  31. });
  32. services.AddFileLogging("logs/{0:yyyy}-{0:MM}-{0:dd}/error.log", options =>
  33. {
  34. options.WriteFilter = (logMsg) =>
  35. {
  36. return logMsg.LogLevel == LogLevel.Error;
  37. };
  38. options.FileNameRule = fileName =>
  39. {
  40. return string.Format(fileName, DateTime.UtcNow);
  41. };
  42. options.DateFormat = "yyyy-MM-dd HH:mm:ss(zzz) dddd";
  43. });
  44. services.AddFileLogging("logs/{0:yyyy}-{0:MM}-{0:dd}/warning.log", options =>
  45. {
  46. options.WriteFilter = (logMsg) =>
  47. {
  48. return logMsg.LogLevel == LogLevel.Warning;
  49. };
  50. options.FileNameRule = fileName =>
  51. {
  52. return string.Format(fileName, DateTime.UtcNow);
  53. };
  54. options.DateFormat = "yyyy-MM-dd HH:mm:ss(zzz) dddd";
  55. });
  56. }
  57. }
  58. }