public IBus Start(bool isRunningAcceptanceTests = false) { var logger = LogManager.GetLogger(typeof(Bootstrapper)); if (!isRunningAcceptanceTests) { var startOptions = new StartOptions(settings.RootUrl); WebApp = Microsoft.Owin.Hosting.WebApp.Start(startOptions, b => Startup.Configuration(b)); } bus = NServiceBusFactory.CreateAndStart(settings, container, host, documentStore, configuration); logger.InfoFormat("Api is now accepting requests on {0}", settings.ApiUrl); return(bus); }
private void RecordStartup(LoggingSettings loggingSettings) { var version = typeof(Bootstrapper).Assembly.GetName().Version; var startupMessage = $@" ------------------------------------------------------------- ServiceControl Version: {version} Selected Transport: {settings.TransportType} Audit Retention Period: {settings.AuditRetentionPeriod} Error Retention Period: {settings.ErrorRetentionPeriod} Forwarding Error Messages: {settings.ForwardErrorMessages} Forwarding Audit Messages: {settings.ForwardAuditMessages} Database Size: {DataSize()}bytes ServiceControl Logging Level: {loggingSettings.LoggingLevel} RavenDB Logging Level: {loggingSettings.RavenDBLogLevel} -------------------------------------------------------------"; var logger = LogManager.GetLogger(typeof(Bootstrapper)); logger.Info(startupMessage); }
private void ConfigureLogging(LoggingSettings loggingSettings) { LogManager.Use <NLogFactory>(); const long megaByte = 1073741824; if (NLog.LogManager.Configuration != null) { return; } var version = typeof(Bootstrapper).Assembly.GetName().Version; var nlogConfig = new LoggingConfiguration(); var simpleLayout = new SimpleLayout("${longdate}|${threadid}|${level}|${logger}|${message}${onexception:${newline}${exception:format=tostring}}"); var header = $@"------------------------------------------------------------- ServiceControl Version: {version} Selected Transport: {settings.TransportType} Audit Retention Period: {settings.AuditRetentionPeriod} Error Retention Period: {settings.ErrorRetentionPeriod} Forwarding Error Messages: {settings.ForwardErrorMessages} Forwarding Audit Messages: {settings.ForwardAuditMessages} Database Size: {DataSize()}bytes -------------------------------------------------------------"; var fileTarget = new FileTarget { ArchiveEvery = FileArchivePeriod.Day, FileName = Path.Combine(loggingSettings.LogPath, "logfile.${shortdate}.txt"), ArchiveFileName = Path.Combine(loggingSettings.LogPath, "logfile.{#}.txt"), ArchiveNumbering = ArchiveNumberingMode.DateAndSequence, Layout = simpleLayout, MaxArchiveFiles = 14, ArchiveAboveSize = 30 * megaByte, Header = new SimpleLayout(header) }; var ravenFileTarget = new FileTarget { ArchiveEvery = FileArchivePeriod.Day, FileName = Path.Combine(loggingSettings.LogPath, "ravenlog.${shortdate}.txt"), ArchiveFileName = Path.Combine(loggingSettings.LogPath, "ravenlog.{#}.txt"), ArchiveNumbering = ArchiveNumberingMode.DateAndSequence, Layout = simpleLayout, MaxArchiveFiles = 14, ArchiveAboveSize = 30 * megaByte, Header = new SimpleLayout(header) }; var consoleTarget = new ColoredConsoleTarget { Layout = simpleLayout, UseDefaultRowHighlightingRules = true }; var nullTarget = new NullTarget(); // There lines don't appear to be necessary. The rules seem to work without implicitly adding the targets?!? nlogConfig.AddTarget("console", consoleTarget); nlogConfig.AddTarget("debugger", fileTarget); nlogConfig.AddTarget("raven", ravenFileTarget); nlogConfig.AddTarget("bitbucket", nullTarget); // Only want to see raven errors nlogConfig.LoggingRules.Add(new LoggingRule("Raven.*", loggingSettings.RavenDBLogLevel, ravenFileTarget)); nlogConfig.LoggingRules.Add(new LoggingRule("Raven.*", LogLevel.Error, consoleTarget)); //Noise reduction - Only RavenDB errors on the console nlogConfig.LoggingRules.Add(new LoggingRule("Raven.*", LogLevel.Debug, nullTarget) { Final = true }); //Will swallow debug and above messages // Always want to see license logging regardless of default logging level nlogConfig.LoggingRules.Add(new LoggingRule("Particular.ServiceControl.Licensing.*", LogLevel.Info, fileTarget)); nlogConfig.LoggingRules.Add(new LoggingRule("Particular.ServiceControl.Licensing.*", LogLevel.Info, consoleTarget) { Final = true }); // Defaults nlogConfig.LoggingRules.Add(new LoggingRule("*", loggingSettings.LoggingLevel, fileTarget)); nlogConfig.LoggingRules.Add(new LoggingRule("*", loggingSettings.LoggingLevel < LogLevel.Info ? loggingSettings.LoggingLevel : LogLevel.Info, consoleTarget)); // Remove Console Logging when running as a service if (!Environment.UserInteractive) { foreach (var rule in nlogConfig.LoggingRules.Where(p => p.Targets.Contains(consoleTarget)).ToList()) { nlogConfig.LoggingRules.Remove(rule); } } NLog.LogManager.Configuration = nlogConfig; var logger = LogManager.GetLogger(typeof(Bootstrapper)); var logEventInfo = new LogEventInfo { TimeStamp = DateTime.Now }; logger.InfoFormat("Logging to {0} with LoggingLevel '{1}'", fileTarget.FileName.Render(logEventInfo), loggingSettings.LoggingLevel.Name); logger.InfoFormat("RavenDB logging to {0} with LoggingLevel '{1}'", ravenFileTarget.FileName.Render(logEventInfo), loggingSettings.RavenDBLogLevel.Name); }
public static void Configure(Settings settings) { LogManager.Use <NLogFactory>(); if (NLog.LogManager.Configuration != null) { return; } var version = typeof(Host).Assembly.GetName().Version; var nlogConfig = new LoggingConfiguration(); var simpleLayout = new SimpleLayout("${longdate}|${threadid}|${level}|${logger}|${message}${onexception:${newline}${exception:format=tostring}}"); var header = $@"------------------------------------------------------------- ServiceControl Monitoring Version: {version} Selected Transport: {settings.TransportType} -------------------------------------------------------------"; var fileTarget = new FileTarget { ArchiveEvery = FileArchivePeriod.Day, FileName = Path.Combine(settings.LogPath, "logfile.${shortdate}.txt"), ArchiveFileName = Path.Combine(settings.LogPath, "logfile.{#}.txt"), ArchiveNumbering = ArchiveNumberingMode.DateAndSequence, Layout = simpleLayout, MaxArchiveFiles = 14, ArchiveAboveSize = 30 * MegaByte, Header = new SimpleLayout(header) }; var consoleTarget = new ColoredConsoleTarget { Layout = simpleLayout, UseDefaultRowHighlightingRules = true }; var nullTarget = new NullTarget(); nlogConfig.AddTarget("console", consoleTarget); nlogConfig.AddTarget("debugger", fileTarget); nlogConfig.AddTarget("null", nullTarget); //Suppress NSB license logging since this will have it's own nlogConfig.LoggingRules.Add(new LoggingRule("NServiceBus.LicenseManager", LogLevel.Info, nullTarget) { Final = true }); // Always want to see license logging regardless of default logging level nlogConfig.LoggingRules.Add(new LoggingRule("ServiceControl.Monitoring.Licensing.*", LogLevel.Info, fileTarget)); nlogConfig.LoggingRules.Add(new LoggingRule("ServiceControl.Monitoring.Licensing.*", LogLevel.Info, consoleTarget) { Final = true }); // Defaults nlogConfig.LoggingRules.Add(new LoggingRule("*", settings.LogLevel, fileTarget)); nlogConfig.LoggingRules.Add(new LoggingRule("*", settings.LogLevel < LogLevel.Info ? settings.LogLevel : LogLevel.Info, consoleTarget)); // Remove Console Logging when running as a service if (!Environment.UserInteractive) { foreach (var rule in nlogConfig.LoggingRules.Where(p => p.Targets.Contains(consoleTarget)).ToList()) { nlogConfig.LoggingRules.Remove(rule); } } NLog.LogManager.Configuration = nlogConfig; var logger = LogManager.GetLogger("LoggingConfiguration"); var logEventInfo = new LogEventInfo { TimeStamp = DateTime.Now }; logger.InfoFormat("Logging to {0} with LogLevel '{1}'", fileTarget.FileName.Render(logEventInfo), settings.LogLevel.Name); }