Program.cs 1.1 KB

12345678910111213141516171819202122232425262728293031323334
  1. using CustomHostingDemo.Logging;
  2. using Microsoft.Extensions.Configuration;
  3. using Microsoft.Extensions.Logging;
  4. using Ninject;
  5. using System;
  6. using System.IO;
  7. using System.Reflection;
  8. namespace CustomHostingDemo
  9. {
  10. class Program
  11. {
  12. static void Main(string[] args)
  13. {
  14. var kernel = new StandardKernel();
  15. var config = new ConfigurationBuilder()
  16. .SetBasePath(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location))
  17. .AddJsonFile("appsettings.json", optional: true, reloadOnChange: false)
  18. .Build();
  19. kernel.Bind<IConfiguration>().ToConstant(config).InSingletonScope();
  20. kernel.Bind<ILoggerFactory>().To<LoggerFactory>().InSingletonScope();
  21. kernel.Bind(typeof(Logger<>)).ToSelf().InSingletonScope();
  22. kernel.Bind<ILoggerProvider>().To<LoggerProvider>().InSingletonScope();
  23. Console.WriteLine($"Hello {config["Hello"]}");
  24. var logger = kernel.Get<Logger<Program>>();
  25. logger.LogInformation("Informational Message");
  26. logger.LogWarning("Ooopsie!");
  27. }
  28. }
  29. }