Program.cs 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. using Microsoft.AspNetCore.Builder;
  2. using Microsoft.AspNetCore.Hosting;
  3. using Microsoft.AspNetCore.Http;
  4. using Microsoft.AspNetCore.Server.Kestrel.Core;
  5. using Microsoft.Extensions.DependencyInjection;
  6. using Microsoft.Extensions.Logging;
  7. using Microsoft.Extensions.Logging.Console;
  8. var builder = WebApplication.CreateBuilder(args);
  9. //控制台日志格式
  10. builder.Services.AddLogging(opt =>
  11. {
  12. opt.AddSimpleConsole(p =>
  13. {
  14. p.TimestampFormat = "[dd HH:mm:ss] ";
  15. p.SingleLine = true;
  16. p.ColorBehavior = LoggerColorBehavior.Enabled;
  17. });
  18. });
  19. builder.Services.Configure<LoggerFilterOptions>(options =>
  20. {
  21. options.AddFilter((category, level) =>
  22. {
  23. if (level == LogLevel.Debug) return false;
  24. if (level == LogLevel.Trace) return false;
  25. if (category == "Microsoft.AspNetCore.Hosting.Diagnostics" && level == LogLevel.Information) return false;
  26. if (category == "Microsoft.AspNetCore.Routing.EndpointMiddleware" && level == LogLevel.Information) return false;
  27. if (category == "Microsoft.AspNetCore.Server.Kestrel" && level == LogLevel.Information) return false;
  28. if (category == "Microsoft.AspNetCore.Server.Kestrel.Http2" && level == LogLevel.Information) return false;
  29. if (category == "Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker" && level == LogLevel.Information) return false;
  30. if (category == "Microsoft.AspNetCore.Mvc.Infrastructure.ContentResultExecutor" && level == LogLevel.Information) return false;
  31. return true; // 其他日志保留
  32. });
  33. });
  34. //配置HTTP1、HTTP2端口
  35. builder.WebHost.UseKestrel((_, kso) =>
  36. {
  37. kso.ListenAnyIP(0, lo => lo.Protocols = HttpProtocols.Http2);
  38. kso.ListenAnyIP(0, lo => lo.Protocols = HttpProtocols.Http1);
  39. });
  40. builder.Services.AddControllers();
  41. var app = builder.Build();
  42. app.Use(async (context, next) =>
  43. {
  44. context.Request.EnableBuffering(); // this used to be EnableRewind
  45. await next(context);
  46. });
  47. app.MapControllers();
  48. app.MapGet("/", () =>"I am hub!");
  49. await app.RunAsync();