private static ILog CreateLog(IServiceCollection services, ApplicationSettings settings) { var appSettings = settings.MarketProfileService; LykkeLogToAzureStorage logToAzureStorage = null; var logToConsole = new LogToConsole(); var logAggregate = new LogAggregate(); logAggregate.AddLogger(logToConsole); if (!string.IsNullOrEmpty(appSettings.Db.LogsConnectionString) && !(appSettings.Db.LogsConnectionString.StartsWith("${") && appSettings.Db.LogsConnectionString.EndsWith("}"))) { logToAzureStorage = new LykkeLogToAzureStorage("Lykke.Service.MarketProfile", new AzureTableStorage <LogEntity>( appSettings.Db.LogsConnectionString, "MarketProfileService", logToConsole)); logAggregate.AddLogger(logToAzureStorage); } var log = logAggregate.CreateLogger(); var slackService = services.UseSlackNotificationsSenderViaAzureQueue(new AzureQueueSettings { ConnectionString = settings.SlackNotifications.AzureQueue.ConnectionString, QueueName = settings.SlackNotifications.AzureQueue.QueueName }, log); logToAzureStorage?.SetSlackNotification(slackService); return(log); }
private static ILog CreateLogWithSlack(IServiceCollection services, AppSettings settings) { LykkeLogToAzureStorage logToAzureStorage = null; var logToConsole = new LogToConsole(); var logAggregate = new LogAggregate(); logAggregate.AddLogger(logToConsole); var dbLogConnectionString = settings.LykkeServiceService.Db.LogsConnString; // Creating azure storage logger, which logs own messages to concole log if (!string.IsNullOrEmpty(dbLogConnectionString) && !(dbLogConnectionString.StartsWith("${") && dbLogConnectionString.EndsWith("}"))) { logToAzureStorage = new LykkeLogToAzureStorage("Lykke.Service.LykkeService", new AzureTableStorage <LogEntity>( dbLogConnectionString, "LykkeServiceLog", logToConsole)); logAggregate.AddLogger(logToAzureStorage); } // Creating aggregate log, which logs to console and to azure storage, if last one specified var log = logAggregate.CreateLogger(); // Creating slack notification service, which logs own azure queue processing messages to aggregate log var slackService = services.UseSlackNotificationsSenderViaAzureQueue(new AzureQueueIntegration.AzureQueueSettings { ConnectionString = settings.SlackNotifications.AzureQueue.ConnectionString, QueueName = settings.SlackNotifications.AzureQueue.QueueName }, log); // Finally, setting slack notification for azure storage log, which will forward necessary message to slack service logToAzureStorage?.SetSlackNotification(slackService); return(log); }
public static void ConfigureAzureLogger(this LogAggregate logAggregate, IServiceCollection services, string appName, AppSettings appSettings) { var log = logAggregate.CreateLogger(); var slackSender = services.UseSlackNotificationsSenderViaAzureQueue(appSettings.SlackNotifications.AzureQueue, log); var azureLog = new LykkeLogToAzureStorage(appName, new AzureTableStorage <LogEntity>(appSettings.BrokerQuoteFeed.ConnectionStrings.LogsConnectionString, appName + "Logs", log), slackSender); logAggregate.AddLogger(azureLog); }