Exemplo n.º 1
0
 internal TableStorageScaleMetricsRepository(IConfiguration configuration, IHostIdProvider hostIdProvider, IOptions <ScaleOptions> scaleOptions, ILoggerFactory loggerFactory,
                                             int tableCreationRetries, IDelegatingHandlerProvider delegatingHandlerProvider)
 {
     _configuration             = configuration;
     _hostIdProvider            = hostIdProvider;
     _scaleOptions              = scaleOptions.Value;
     _logger                    = loggerFactory.CreateLogger <TableStorageScaleMetricsRepository>();
     _tableCreationRetries      = tableCreationRetries;
     _delegatingHandlerProvider = delegatingHandlerProvider ?? throw new ArgumentNullException(nameof(delegatingHandlerProvider));
 }
 public FunctionInstanceLogCollectorProvider(IFunctionMetadataManager metadataManager, IMetricsLogger metrics,
                                             IHostIdProvider hostIdProvider, IConfiguration configuration, ILoggerFactory loggerFactory, IDelegatingHandlerProvider delegatingHandlerProvider)
 {
     _metadataManager           = metadataManager ?? throw new ArgumentNullException(nameof(metadataManager));
     _metrics                   = metrics ?? throw new ArgumentNullException(nameof(metrics));
     _hostIdProvider            = hostIdProvider ?? throw new ArgumentNullException(nameof(hostIdProvider));
     _configuration             = configuration ?? throw new ArgumentNullException(nameof(configuration));
     _loggerFactory             = loggerFactory ?? throw new ArgumentNullException(nameof(loggerFactory));
     _delegatingHandlerProvider = delegatingHandlerProvider ?? throw new ArgumentNullException(nameof(delegatingHandlerProvider));
 }
        public FunctionInstanceLogger(
            IFunctionMetadataManager metadataManager,
            IMetricsLogger metrics,
            IHostIdProvider hostIdProvider,
            IConfiguration configuration,
            ILoggerFactory loggerFactory,
            IDelegatingHandlerProvider delegatingHandlerProvider)
            : this(metadataManager, metrics)
        {
            if (hostIdProvider == null)
            {
                throw new ArgumentNullException(nameof(hostIdProvider));
            }

            if (configuration == null)
            {
                throw new ArgumentNullException(nameof(configuration));
            }

            if (loggerFactory == null)
            {
                throw new ArgumentNullException(nameof(loggerFactory));
            }

            if (delegatingHandlerProvider == null)
            {
                throw new ArgumentNullException(nameof(delegatingHandlerProvider));
            }

            string accountConnectionString = configuration.GetWebJobsConnectionString(ConnectionStringNames.Dashboard);

            if (accountConnectionString != null)
            {
                CloudStorageAccount account = CloudStorageAccount.Parse(accountConnectionString);
                var restConfig = new RestExecutorConfiguration {
                    DelegatingHandler = delegatingHandlerProvider.Create()
                };
                var tableClientConfig = new TableClientConfiguration {
                    RestExecutorConfiguration = restConfig
                };

                var client        = new CloudTableClient(account.TableStorageUri, account.Credentials, tableClientConfig);
                var tableProvider = LogFactory.NewLogTableProvider(client);

                ILogger logger = loggerFactory.CreateLogger(ScriptConstants.LogCategoryHostGeneral);

                string hostId        = hostIdProvider.GetHostIdAsync(CancellationToken.None).GetAwaiter().GetResult() ?? "default";
                string containerName = Environment.MachineName;
                _writer = LogFactory.NewWriter(hostId, containerName, tableProvider, (e) => OnException(e, logger));
            }
        }