private static void Run(IServiceProvider serviceProvider) { ExtensionsLogger.Use(); // MassTransit NLogLogWriterFactory.Use(); // Topshelf var loggerFactory = serviceProvider.GetRequiredService <ILoggerFactory>(); var logger = loggerFactory.CreateLogger(typeof(Program)); logger.LogInformation("Program Starting"); logger.LogInformation("Environment={0}", EnvironmentName); logger.LogInformation(Assembly.GetExecutingAssembly().FullName); // configure and run the topshelf service HostFactory.Run(hostConfigurator => { // log exception details hostConfigurator.OnException(exception => logger.LogError(exception.ToString())); // configure the hosted service hostConfigurator.Service <IHostedService>(serviceConfigurator => { serviceConfigurator.ConstructUsing(serviceProvider.GetRequiredService <IHostedService>); serviceConfigurator.WhenStarted(async host => await host.StartAsync(CancellationToken.None).ConfigureAwait(false)); serviceConfigurator.WhenStopped(async host => await host.StopAsync(CancellationToken.None).ConfigureAwait(false)); }); // by default use a least privileged account hostConfigurator.RunAsNetworkService(); // default the ServiceName, DisplayName, and Description from the entry assembly hostConfigurator.UseAssemblyInfoForServiceInfo(); }); logger.LogInformation("Program Exiting"); }
static int Main(string[] args) { ConfigureNLog(); NLogLogger.Use(); NLogLogWriterFactory.Use(); return((int)HostFactory.Run(x => x.Service <ResponderService>())); }
/// <summary> /// Specify that you want to use the NLog logging framework. /// </summary> /// <param name="configurator"> Optional service bus configurator </param> /// <param name="factory"> Required log-producing factory from NLog </param> public static void UseNLog(this HostConfigurator configurator, LogFactory factory) { NLogLogWriterFactory.Use(factory); }
/// <summary> /// Specify that you want to use the NLog logging framework. /// </summary> /// <param name="configurator"> Optional service bus configurator </param> public static void UseNLog(this HostConfigurator configurator) { NLogLogWriterFactory.Use(); }