Program.cs 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. using System;
  2. using Microsoft.AspNetCore.Hosting;
  3. using Microsoft.Extensions.Hosting;
  4. using Microsoft.Extensions.Logging;
  5. using Microsoft.Extensions.Configuration;
  6. using NLog;
  7. using NLog.Web;
  8. using Autofac.Extensions.DependencyInjection;
  9. using Admin.Core.Common.Helpers;
  10. using Admin.Core.Common.Configs;
  11. using LogLevel = Microsoft.Extensions.Logging.LogLevel;
  12. using System.Threading.Tasks;
  13. //using NLog.Extensions.Logging;
  14. namespace Admin.Core
  15. {
  16. public class Program
  17. {
  18. private static AppConfig appConfig = new ConfigHelper().Get<AppConfig>("appconfig") ?? new AppConfig();
  19. public static async Task<int> Main(string[] args)
  20. {
  21. var logger = LogManager.GetCurrentClassLogger();
  22. try
  23. {
  24. Console.WriteLine(" launching...");
  25. var host = CreateHostBuilder(args).Build();
  26. Console.WriteLine($"\r\n {string.Join("\r\n ", appConfig.Urls)}\r\n");
  27. await host.RunAsync();
  28. return 0;
  29. }
  30. catch (Exception ex)
  31. {
  32. logger.Error(ex, "Stopped program because of exception");
  33. return 1;
  34. }
  35. finally
  36. {
  37. LogManager.Shutdown();
  38. }
  39. }
  40. public static IHostBuilder CreateHostBuilder(string[] args)
  41. {
  42. //使用logconfig.json配置,默认使用nlog.config
  43. //var logConfig = new ConfigHelper().Load("logconfig", reloadOnChange: true).GetSection("nLog");
  44. //LogManager.Configuration = new NLogLoggingConfiguration(logConfig);
  45. return Host.CreateDefaultBuilder(args)
  46. .UseServiceProviderFactory(new AutofacServiceProviderFactory())
  47. .ConfigureWebHostDefaults(webBuilder =>
  48. {
  49. webBuilder
  50. //.UseEnvironment(Environments.Production)
  51. .UseStartup<Startup>()
  52. .ConfigureAppConfiguration((host, config) =>
  53. {
  54. if (appConfig.RateLimit)
  55. {
  56. config.AddJsonFile("./configs/ratelimitconfig.json", optional: false, reloadOnChange: true)
  57. #if DEBUG
  58. .AddJsonFile("./configs/ratelimitconfig.Development.json", true)
  59. #endif
  60. ;
  61. }
  62. })
  63. .UseUrls(appConfig.Urls);
  64. })
  65. .ConfigureLogging(logging =>
  66. {
  67. logging.ClearProviders();
  68. logging.SetMinimumLevel(LogLevel.Trace);
  69. })
  70. .UseNLog();
  71. }
  72. }
  73. }