private void EnsureLoggers() { if (_loggersSet) { return; } IFunctionInstanceLogger functionLogger = new FunctionInstanceLogger(_loggerFactory); if (_storageAccountOptions.Dashboard != null) { var dashboardAccount = _storageAccountOptions.GetDashboardStorageAccount(); // Create logging against a live Azure account. var dashboardBlobClient = dashboardAccount.CreateCloudBlobClient(); IPersistentQueueWriter <PersistentQueueMessage> queueWriter = new PersistentQueueWriter <PersistentQueueMessage>(dashboardBlobClient); PersistentQueueLogger queueLogger = new PersistentQueueLogger(queueWriter); _hostInstanceLogger = queueLogger; _functionInstanceLogger = new CompositeFunctionInstanceLogger(queueLogger, functionLogger); _functionOutputLogger = new BlobFunctionOutputLogger(dashboardBlobClient); } else { // No auxillary logging. Logging interfaces are nops or in-memory. _hostInstanceLogger = new NullHostInstanceLogger(); _functionInstanceLogger = functionLogger; _functionOutputLogger = new NullFunctionOutputLogger(); } _loggersSet = true; }
private async Task EnsureLoggersAsync(CancellationToken cancellationToken) { if (_loggersSet) { return; } IStorageAccount dashboardAccount = await _storageAccountProvider.GetDashboardAccountAsync(cancellationToken); if (dashboardAccount != null) { // Create logging against a live Azure account. IStorageBlobClient dashboardBlobClient = dashboardAccount.CreateBlobClient(); IPersistentQueueWriter <PersistentQueueMessage> queueWriter = new PersistentQueueWriter <PersistentQueueMessage>(dashboardBlobClient); PersistentQueueLogger queueLogger = new PersistentQueueLogger(queueWriter); _hostInstanceLogger = queueLogger; _functionInstanceLogger = new CompositeFunctionInstanceLogger(queueLogger, new ConsoleFunctionInstanceLogger()); _functionOutputLogger = new BlobFunctionOutputLogger(dashboardBlobClient); } else { // No auxillary logging. Logging interfaces are nops or in-memory. _hostInstanceLogger = new NullHostInstanceLogger(); _functionInstanceLogger = new ConsoleFunctionInstanceLogger(); _functionOutputLogger = new ConsoleFunctionOutputLogger(); } _loggersSet = true; }
private async Task EnsureLoggersAsync(CancellationToken cancellationToken) { if (_loggersSet) { return; } IStorageAccount dashboardAccount = await _storageAccountProvider.GetDashboardAccountAsync(cancellationToken); IFunctionInstanceLogger traceWriterFunctionLogger = new TraceWriterFunctionInstanceLogger(_trace); if (dashboardAccount != null) { // Create logging against a live Azure account. IStorageBlobClient dashboardBlobClient = dashboardAccount.CreateBlobClient(); IPersistentQueueWriter<PersistentQueueMessage> queueWriter = new PersistentQueueWriter<PersistentQueueMessage>(dashboardBlobClient); PersistentQueueLogger queueLogger = new PersistentQueueLogger(queueWriter); _hostInstanceLogger = queueLogger; _functionInstanceLogger = new CompositeFunctionInstanceLogger(queueLogger, traceWriterFunctionLogger); _functionOutputLogger = new BlobFunctionOutputLogger(dashboardBlobClient); } else { // No auxillary logging. Logging interfaces are nops or in-memory. _hostInstanceLogger = new NullHostInstanceLogger(); _functionInstanceLogger = traceWriterFunctionLogger; _functionOutputLogger = new ConsoleFunctionOutputLogger(); } _loggersSet = true; }