Remove obsolete types from Azure logging (#498)
This commit is contained in:
parent
ef4b214125
commit
8a586ceb57
|
|
@ -1,162 +0,0 @@
|
||||||
// Copyright (c) .NET Foundation. All rights reserved.
|
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
|
||||||
|
|
||||||
using System;
|
|
||||||
|
|
||||||
namespace Microsoft.Extensions.Logging.AzureAppServices
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Settings for Azure diagnostics logging.
|
|
||||||
/// </summary>
|
|
||||||
[Obsolete("This type is obsolete and will be removed in a future version. The recommended alternative is AzureBlobLoggerOptions.")]
|
|
||||||
public class AzureAppServicesDiagnosticsSettings
|
|
||||||
{
|
|
||||||
private TimeSpan _blobCommitPeriod = TimeSpan.FromSeconds(5);
|
|
||||||
private int _blobBatchSize = 32;
|
|
||||||
private string _outputTemplate = "{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level}] {Message}{NewLine}{Exception}";
|
|
||||||
private int _retainedFileCountLimit = 2;
|
|
||||||
private int _fileSizeLimit = 10 * 1024 * 1024;
|
|
||||||
private string _blobName = "applicationLog.txt";
|
|
||||||
private TimeSpan? _fileFlushPeriod = TimeSpan.FromSeconds(1);
|
|
||||||
private int _backgroundQueueSize;
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Gets or sets a strictly positive value representing the maximum log size in bytes.
|
|
||||||
/// Once the log is full, no more messages will be appended.
|
|
||||||
/// Defaults to <c>10MB</c>.
|
|
||||||
/// </summary>
|
|
||||||
public int FileSizeLimit
|
|
||||||
{
|
|
||||||
get { return _fileSizeLimit; }
|
|
||||||
set
|
|
||||||
{
|
|
||||||
if (value <= 0)
|
|
||||||
{
|
|
||||||
throw new ArgumentOutOfRangeException(nameof(value), $"{nameof(FileSizeLimit)} must be positive.");
|
|
||||||
}
|
|
||||||
_fileSizeLimit = value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Gets or sets a strictly positive value representing the maximum retained file count.
|
|
||||||
/// Defaults to <c>2</c>.
|
|
||||||
/// </summary>
|
|
||||||
public int RetainedFileCountLimit
|
|
||||||
{
|
|
||||||
get { return _retainedFileCountLimit; }
|
|
||||||
set
|
|
||||||
{
|
|
||||||
if (value <= 0)
|
|
||||||
{
|
|
||||||
throw new ArgumentOutOfRangeException(nameof(value), $"{nameof(RetainedFileCountLimit)} must be positive.");
|
|
||||||
}
|
|
||||||
_retainedFileCountLimit = value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Gets or sets a message template describing the output messages.
|
|
||||||
/// Defaults to <c>"{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level}] {Message}{NewLine}{Exception}"</c>.
|
|
||||||
/// </summary>
|
|
||||||
public string OutputTemplate
|
|
||||||
{
|
|
||||||
get { return _outputTemplate; }
|
|
||||||
set
|
|
||||||
{
|
|
||||||
if (string.IsNullOrEmpty(value))
|
|
||||||
{
|
|
||||||
throw new ArgumentException(nameof(value), $"{nameof(OutputTemplate)} must be non-empty string.");
|
|
||||||
}
|
|
||||||
_outputTemplate = value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Gets or sets a maximum number of events to include in a single blob append batch.
|
|
||||||
/// Defaults to <c>32</c>.
|
|
||||||
/// </summary>
|
|
||||||
public int BlobBatchSize
|
|
||||||
{
|
|
||||||
get { return _blobBatchSize; }
|
|
||||||
set
|
|
||||||
{
|
|
||||||
if (value <= 0)
|
|
||||||
{
|
|
||||||
throw new ArgumentOutOfRangeException(nameof(value), $"{nameof(BlobBatchSize)} must be positive.");
|
|
||||||
}
|
|
||||||
_blobBatchSize = value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Gets or sets a time to wait between checking for blob log batches.
|
|
||||||
/// Defaults to 5 seconds.
|
|
||||||
/// </summary>
|
|
||||||
public TimeSpan BlobCommitPeriod
|
|
||||||
{
|
|
||||||
get { return _blobCommitPeriod; }
|
|
||||||
set
|
|
||||||
{
|
|
||||||
if (value < TimeSpan.Zero)
|
|
||||||
{
|
|
||||||
throw new ArgumentOutOfRangeException(nameof(value), $"{nameof(BlobCommitPeriod)} must be positive.");
|
|
||||||
}
|
|
||||||
_blobCommitPeriod = value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Gets or sets the last section of log blob name.
|
|
||||||
/// Defaults to <c>"applicationLog.txt"</c>.
|
|
||||||
/// </summary>
|
|
||||||
public string BlobName
|
|
||||||
{
|
|
||||||
get { return _blobName; }
|
|
||||||
set
|
|
||||||
{
|
|
||||||
if (string.IsNullOrEmpty(value))
|
|
||||||
{
|
|
||||||
throw new ArgumentException(nameof(value), $"{nameof(BlobName)} must be non-empty string.");
|
|
||||||
}
|
|
||||||
_blobName = value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Gets or sets the maximum size of the background log message queue or 0 for no limit.
|
|
||||||
/// After maximum queue size is reached log event sink would start blocking.
|
|
||||||
/// Defaults to <c>0</c>.
|
|
||||||
/// </summary>
|
|
||||||
public int BackgroundQueueSize
|
|
||||||
{
|
|
||||||
get { return _backgroundQueueSize; }
|
|
||||||
set
|
|
||||||
{
|
|
||||||
if (value < 0)
|
|
||||||
{
|
|
||||||
throw new ArgumentOutOfRangeException(nameof(value), $"{nameof(BackgroundQueueSize)} must be non-negative.");
|
|
||||||
}
|
|
||||||
_backgroundQueueSize = value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Gets or sets the period after which logs will be flushed to disk or
|
|
||||||
/// <c>null</c> if auto flushing is not required.
|
|
||||||
/// Defaults to 1 second.
|
|
||||||
/// </summary>
|
|
||||||
public TimeSpan? FileFlushPeriod
|
|
||||||
{
|
|
||||||
get { return _fileFlushPeriod; }
|
|
||||||
set
|
|
||||||
{
|
|
||||||
if (value < TimeSpan.Zero)
|
|
||||||
{
|
|
||||||
throw new ArgumentOutOfRangeException(nameof(value), $"{nameof(FileFlushPeriod)} must be positive.");
|
|
||||||
}
|
|
||||||
_fileFlushPeriod = value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (c) .NET Foundation. All rights reserved.
|
// Copyright (c) .NET Foundation. All rights reserved.
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
|
|
@ -6,7 +6,6 @@ using Microsoft.Extensions.Configuration;
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
using Microsoft.Extensions.DependencyInjection.Extensions;
|
using Microsoft.Extensions.DependencyInjection.Extensions;
|
||||||
using Microsoft.Extensions.Logging.AzureAppServices;
|
using Microsoft.Extensions.Logging.AzureAppServices;
|
||||||
using Microsoft.Extensions.Logging.AzureAppServices.Internal;
|
|
||||||
using Microsoft.Extensions.Logging.Configuration;
|
using Microsoft.Extensions.Logging.Configuration;
|
||||||
using Microsoft.Extensions.Options;
|
using Microsoft.Extensions.Options;
|
||||||
using static Microsoft.Extensions.DependencyInjection.ServiceDescriptor;
|
using static Microsoft.Extensions.DependencyInjection.ServiceDescriptor;
|
||||||
|
|
@ -93,103 +92,5 @@ namespace Microsoft.Extensions.Logging
|
||||||
provider: typeof(FileLoggerProvider),
|
provider: typeof(FileLoggerProvider),
|
||||||
levelKey: "AzureDriveTraceLevel");
|
levelKey: "AzureDriveTraceLevel");
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Adds an Azure Web Apps diagnostics logger.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="factory">The extension method argument</param>
|
|
||||||
[Obsolete("This method is obsolete and will be removed in a future version. The recommended alternative is AddAzureWebAppDiagnostics(this ILoggingBuilder builder).")]
|
|
||||||
public static ILoggerFactory AddAzureWebAppDiagnostics(this ILoggerFactory factory)
|
|
||||||
{
|
|
||||||
return AddAzureWebAppDiagnostics(factory, new AzureAppServicesDiagnosticsSettings());
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Adds an Azure Web Apps diagnostics logger.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="factory">The extension method argument</param>
|
|
||||||
/// <param name="settings">The setting object to configure loggers.</param>
|
|
||||||
[Obsolete("This method is obsolete and will be removed in a future version. The recommended alternative is AddAzureWebAppDiagnostics(this ILoggingBuilder builder).")]
|
|
||||||
public static ILoggerFactory AddAzureWebAppDiagnostics(this ILoggerFactory factory, AzureAppServicesDiagnosticsSettings settings)
|
|
||||||
{
|
|
||||||
var context = WebAppContext.Default;
|
|
||||||
if (!context.IsRunningInAzureWebApp)
|
|
||||||
{
|
|
||||||
return factory;
|
|
||||||
}
|
|
||||||
|
|
||||||
var config = SiteConfigurationProvider.GetAzureLoggingConfiguration(context);
|
|
||||||
|
|
||||||
// Only add the provider if we're in Azure WebApp. That cannot change once the apps started
|
|
||||||
var fileOptions = new OptionsMonitor<AzureFileLoggerOptions>(
|
|
||||||
new OptionsFactory<AzureFileLoggerOptions>(
|
|
||||||
new IConfigureOptions<AzureFileLoggerOptions>[]
|
|
||||||
{
|
|
||||||
new FileLoggerConfigureOptions(config, context),
|
|
||||||
new ConfigureOptions<AzureFileLoggerOptions>(options =>
|
|
||||||
{
|
|
||||||
options.FileSizeLimit = settings.FileSizeLimit;
|
|
||||||
options.RetainedFileCountLimit = settings.RetainedFileCountLimit;
|
|
||||||
options.BackgroundQueueSize = settings.BackgroundQueueSize == 0 ? (int?) null : settings.BackgroundQueueSize;
|
|
||||||
|
|
||||||
if (settings.FileFlushPeriod != null)
|
|
||||||
{
|
|
||||||
options.FlushPeriod = settings.FileFlushPeriod.Value;
|
|
||||||
}
|
|
||||||
})
|
|
||||||
},
|
|
||||||
new IPostConfigureOptions<AzureFileLoggerOptions>[0]
|
|
||||||
),
|
|
||||||
new[]
|
|
||||||
{
|
|
||||||
new ConfigurationChangeTokenSource<AzureFileLoggerOptions>(config)
|
|
||||||
},
|
|
||||||
new OptionsCache<AzureFileLoggerOptions>()
|
|
||||||
);
|
|
||||||
|
|
||||||
var blobOptions = new OptionsMonitor<AzureBlobLoggerOptions>(
|
|
||||||
new OptionsFactory<AzureBlobLoggerOptions>(
|
|
||||||
new IConfigureOptions<AzureBlobLoggerOptions>[] {
|
|
||||||
new BlobLoggerConfigureOptions(config, context),
|
|
||||||
new ConfigureOptions<AzureBlobLoggerOptions>(options =>
|
|
||||||
{
|
|
||||||
options.BlobName = settings.BlobName;
|
|
||||||
options.FlushPeriod = settings.BlobCommitPeriod;
|
|
||||||
options.BatchSize = settings.BlobBatchSize;
|
|
||||||
options.BackgroundQueueSize = settings.BackgroundQueueSize == 0 ? (int?) null : settings.BackgroundQueueSize;
|
|
||||||
})
|
|
||||||
},
|
|
||||||
new IPostConfigureOptions<AzureBlobLoggerOptions>[0]
|
|
||||||
),
|
|
||||||
new[]
|
|
||||||
{
|
|
||||||
new ConfigurationChangeTokenSource<AzureBlobLoggerOptions>(config)
|
|
||||||
},
|
|
||||||
new OptionsCache<AzureBlobLoggerOptions>()
|
|
||||||
);
|
|
||||||
|
|
||||||
var filterOptions = new OptionsMonitor<LoggerFilterOptions>(
|
|
||||||
new OptionsFactory<LoggerFilterOptions>(
|
|
||||||
new[]
|
|
||||||
{
|
|
||||||
CreateFileFilterConfigureOptions(config),
|
|
||||||
CreateBlobFilterConfigureOptions(config)
|
|
||||||
},
|
|
||||||
new IPostConfigureOptions<LoggerFilterOptions>[0]),
|
|
||||||
new [] { new ConfigurationChangeTokenSource<LoggerFilterOptions>(config) },
|
|
||||||
new OptionsCache<LoggerFilterOptions>());
|
|
||||||
|
|
||||||
factory.AddProvider(new ForwardingLoggerProvider(
|
|
||||||
new LoggerFactory(
|
|
||||||
new ILoggerProvider[]
|
|
||||||
{
|
|
||||||
new FileLoggerProvider(fileOptions),
|
|
||||||
new BlobLoggerProvider(blobOptions)
|
|
||||||
},
|
|
||||||
filterOptions
|
|
||||||
)
|
|
||||||
));
|
|
||||||
return factory;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,7 @@
|
||||||
// Copyright (c) .NET Foundation. All rights reserved.
|
// Copyright (c) .NET Foundation. All rights reserved.
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
using Microsoft.Extensions.Logging.AzureAppServices.Internal;
|
|
||||||
|
|
||||||
namespace Microsoft.Extensions.Logging.AzureAppServices
|
namespace Microsoft.Extensions.Logging.AzureAppServices
|
||||||
{
|
{
|
||||||
|
|
@ -36,4 +35,4 @@ namespace Microsoft.Extensions.Logging.AzureAppServices
|
||||||
|
|
||||||
internal string ApplicationInstanceId { get; set; }
|
internal string ApplicationInstanceId { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,7 @@
|
||||||
// Copyright (c) .NET Foundation. All rights reserved.
|
// Copyright (c) .NET Foundation. All rights reserved.
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
using Microsoft.Extensions.Logging.AzureAppServices.Internal;
|
|
||||||
|
|
||||||
namespace Microsoft.Extensions.Logging.AzureAppServices
|
namespace Microsoft.Extensions.Logging.AzureAppServices
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -4,9 +4,9 @@
|
||||||
using Microsoft.Extensions.Configuration;
|
using Microsoft.Extensions.Configuration;
|
||||||
using Microsoft.Extensions.Options;
|
using Microsoft.Extensions.Options;
|
||||||
|
|
||||||
namespace Microsoft.Extensions.Logging.AzureAppServices.Internal
|
namespace Microsoft.Extensions.Logging.AzureAppServices
|
||||||
{
|
{
|
||||||
public class BatchLoggerConfigureOptions : IConfigureOptions<BatchingLoggerOptions>
|
internal class BatchLoggerConfigureOptions : IConfigureOptions<BatchingLoggerOptions>
|
||||||
{
|
{
|
||||||
private readonly IConfiguration _configuration;
|
private readonly IConfiguration _configuration;
|
||||||
private readonly string _isEnabledKey;
|
private readonly string _isEnabledKey;
|
||||||
|
|
@ -33,4 +33,4 @@ namespace Microsoft.Extensions.Logging.AzureAppServices.Internal
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1,12 +1,12 @@
|
||||||
// Copyright (c) .NET Foundation. All rights reserved.
|
// Copyright (c) .NET Foundation. All rights reserved.
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
|
||||||
namespace Microsoft.Extensions.Logging.AzureAppServices.Internal
|
namespace Microsoft.Extensions.Logging.AzureAppServices
|
||||||
{
|
{
|
||||||
public class BatchingLogger : ILogger
|
internal class BatchingLogger : ILogger
|
||||||
{
|
{
|
||||||
private readonly BatchingLoggerProvider _provider;
|
private readonly BatchingLoggerProvider _provider;
|
||||||
private readonly string _category;
|
private readonly string _category;
|
||||||
|
|
@ -1,9 +1,9 @@
|
||||||
// Copyright (c) .NET Foundation. All rights reserved.
|
// Copyright (c) .NET Foundation. All rights reserved.
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
|
|
||||||
namespace Microsoft.Extensions.Logging.AzureAppServices.Internal
|
namespace Microsoft.Extensions.Logging.AzureAppServices
|
||||||
{
|
{
|
||||||
public class BatchingLoggerOptions
|
public class BatchingLoggerOptions
|
||||||
{
|
{
|
||||||
|
|
@ -73,4 +73,4 @@ namespace Microsoft.Extensions.Logging.AzureAppServices.Internal
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public bool IncludeScopes { get; set; } = false;
|
public bool IncludeScopes { get; set; } = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -8,7 +8,7 @@ using System.Threading;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Microsoft.Extensions.Options;
|
using Microsoft.Extensions.Options;
|
||||||
|
|
||||||
namespace Microsoft.Extensions.Logging.AzureAppServices.Internal
|
namespace Microsoft.Extensions.Logging.AzureAppServices
|
||||||
{
|
{
|
||||||
public abstract class BatchingLoggerProvider: ILoggerProvider, ISupportExternalScope
|
public abstract class BatchingLoggerProvider: ILoggerProvider, ISupportExternalScope
|
||||||
{
|
{
|
||||||
|
|
@ -29,7 +29,7 @@ namespace Microsoft.Extensions.Logging.AzureAppServices.Internal
|
||||||
|
|
||||||
internal IExternalScopeProvider ScopeProvider => _includeScopes ? _scopeProvider : null;
|
internal IExternalScopeProvider ScopeProvider => _includeScopes ? _scopeProvider : null;
|
||||||
|
|
||||||
protected BatchingLoggerProvider(IOptionsMonitor<BatchingLoggerOptions> options)
|
internal BatchingLoggerProvider(IOptionsMonitor<BatchingLoggerOptions> options)
|
||||||
{
|
{
|
||||||
// NOTE: Only IsEnabled is monitored
|
// NOTE: Only IsEnabled is monitored
|
||||||
|
|
||||||
|
|
@ -73,7 +73,7 @@ namespace Microsoft.Extensions.Logging.AzureAppServices.Internal
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected abstract Task WriteMessagesAsync(IEnumerable<LogMessage> messages, CancellationToken token);
|
internal abstract Task WriteMessagesAsync(IEnumerable<LogMessage> messages, CancellationToken token);
|
||||||
|
|
||||||
private async Task ProcessLogQueue(object state)
|
private async Task ProcessLogQueue(object state)
|
||||||
{
|
{
|
||||||
|
|
@ -90,11 +90,7 @@ namespace Microsoft.Extensions.Logging.AzureAppServices.Internal
|
||||||
var messagesDropped = Interlocked.Exchange(ref _messagesDropped, 0);
|
var messagesDropped = Interlocked.Exchange(ref _messagesDropped, 0);
|
||||||
if (messagesDropped != 0)
|
if (messagesDropped != 0)
|
||||||
{
|
{
|
||||||
_currentBatch.Add(new LogMessage()
|
_currentBatch.Add(new LogMessage(DateTimeOffset.Now, $"{messagesDropped} message(s) dropped because of queue size limit. Increase the queue size or decrease logging verbosity to avoid this.{Environment.NewLine}"));
|
||||||
{
|
|
||||||
Message = $"{messagesDropped} message(s) dropped because of queue size limit. Increase the queue size or decrease logging verbosity to avoid this.{Environment.NewLine}",
|
|
||||||
Timestamp = DateTimeOffset.Now
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (_currentBatch.Count > 0)
|
if (_currentBatch.Count > 0)
|
||||||
|
|
@ -128,7 +124,7 @@ namespace Microsoft.Extensions.Logging.AzureAppServices.Internal
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
if (!_messageQueue.TryAdd(new LogMessage { Message = message, Timestamp = timestamp }, millisecondsTimeout: 0, cancellationToken: _cancellationTokenSource.Token))
|
if (!_messageQueue.TryAdd(new LogMessage(timestamp, message), millisecondsTimeout: 0, cancellationToken: _cancellationTokenSource.Token))
|
||||||
{
|
{
|
||||||
Interlocked.Increment(ref _messagesDropped);
|
Interlocked.Increment(ref _messagesDropped);
|
||||||
}
|
}
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (c) .NET Foundation. All rights reserved.
|
// Copyright (c) .NET Foundation. All rights reserved.
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
|
|
@ -7,10 +7,10 @@ using System.Net.Http;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
namespace Microsoft.Extensions.Logging.AzureAppServices.Internal
|
namespace Microsoft.Extensions.Logging.AzureAppServices
|
||||||
{
|
{
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
public class BlobAppendReferenceWrapper : ICloudAppendBlob
|
internal class BlobAppendReferenceWrapper : ICloudAppendBlob
|
||||||
{
|
{
|
||||||
private readonly Uri _fullUri;
|
private readonly Uri _fullUri;
|
||||||
private readonly HttpClient _client;
|
private readonly HttpClient _client;
|
||||||
|
|
@ -93,4 +93,4 @@ namespace Microsoft.Extensions.Logging.AzureAppServices.Internal
|
||||||
uriBuilder.Query = queryToAppend;
|
uriBuilder.Query = queryToAppend;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1,12 +1,12 @@
|
||||||
// Copyright (c) .NET Foundation. All rights reserved.
|
// Copyright (c) .NET Foundation. All rights reserved.
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||||
|
|
||||||
using Microsoft.Extensions.Configuration;
|
using Microsoft.Extensions.Configuration;
|
||||||
using Microsoft.Extensions.Options;
|
using Microsoft.Extensions.Options;
|
||||||
|
|
||||||
namespace Microsoft.Extensions.Logging.AzureAppServices.Internal
|
namespace Microsoft.Extensions.Logging.AzureAppServices
|
||||||
{
|
{
|
||||||
public class BlobLoggerConfigureOptions : BatchLoggerConfigureOptions, IConfigureOptions<AzureBlobLoggerOptions>
|
internal class BlobLoggerConfigureOptions : BatchLoggerConfigureOptions, IConfigureOptions<AzureBlobLoggerOptions>
|
||||||
{
|
{
|
||||||
private readonly IConfiguration _configuration;
|
private readonly IConfiguration _configuration;
|
||||||
private readonly IWebAppContext _context;
|
private readonly IWebAppContext _context;
|
||||||
|
|
@ -26,4 +26,4 @@ namespace Microsoft.Extensions.Logging.AzureAppServices.Internal
|
||||||
options.ApplicationInstanceId = _context.SiteInstanceId;
|
options.ApplicationInstanceId = _context.SiteInstanceId;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (c) .NET Foundation. All rights reserved.
|
// Copyright (c) .NET Foundation. All rights reserved.
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
|
|
@ -11,7 +11,7 @@ using System.Threading;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Microsoft.Extensions.Options;
|
using Microsoft.Extensions.Options;
|
||||||
|
|
||||||
namespace Microsoft.Extensions.Logging.AzureAppServices.Internal
|
namespace Microsoft.Extensions.Logging.AzureAppServices
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The <see cref="ILoggerProvider"/> implementation that stores messages by appending them to Azure Blob in batches.
|
/// The <see cref="ILoggerProvider"/> implementation that stores messages by appending them to Azure Blob in batches.
|
||||||
|
|
@ -28,7 +28,7 @@ namespace Microsoft.Extensions.Logging.AzureAppServices.Internal
|
||||||
/// Creates a new instance of <see cref="BlobLoggerProvider"/>
|
/// Creates a new instance of <see cref="BlobLoggerProvider"/>
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="options"></param>
|
/// <param name="options"></param>
|
||||||
public BlobLoggerProvider(IOptionsMonitor<AzureBlobLoggerOptions> options)
|
internal BlobLoggerProvider(IOptionsMonitor<AzureBlobLoggerOptions> options)
|
||||||
: this(options, null)
|
: this(options, null)
|
||||||
{
|
{
|
||||||
_blobReferenceFactory = name => new BlobAppendReferenceWrapper(
|
_blobReferenceFactory = name => new BlobAppendReferenceWrapper(
|
||||||
|
|
@ -42,7 +42,7 @@ namespace Microsoft.Extensions.Logging.AzureAppServices.Internal
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="blobReferenceFactory">The container to store logs to.</param>
|
/// <param name="blobReferenceFactory">The container to store logs to.</param>
|
||||||
/// <param name="options"></param>
|
/// <param name="options"></param>
|
||||||
public BlobLoggerProvider(
|
internal BlobLoggerProvider(
|
||||||
IOptionsMonitor<AzureBlobLoggerOptions> options,
|
IOptionsMonitor<AzureBlobLoggerOptions> options,
|
||||||
Func<string, ICloudAppendBlob> blobReferenceFactory) :
|
Func<string, ICloudAppendBlob> blobReferenceFactory) :
|
||||||
base(options)
|
base(options)
|
||||||
|
|
@ -54,7 +54,7 @@ namespace Microsoft.Extensions.Logging.AzureAppServices.Internal
|
||||||
_httpClient = new HttpClient();
|
_httpClient = new HttpClient();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override async Task WriteMessagesAsync(IEnumerable<LogMessage> messages, CancellationToken cancellationToken)
|
internal override async Task WriteMessagesAsync(IEnumerable<LogMessage> messages, CancellationToken cancellationToken)
|
||||||
{
|
{
|
||||||
var eventGroups = messages.GroupBy(GetBlobKey);
|
var eventGroups = messages.GroupBy(GetBlobKey);
|
||||||
foreach (var eventGroup in eventGroups)
|
foreach (var eventGroup in eventGroups)
|
||||||
|
|
@ -88,4 +88,4 @@ namespace Microsoft.Extensions.Logging.AzureAppServices.Internal
|
||||||
e.Timestamp.Hour);
|
e.Timestamp.Hour);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1,13 +1,13 @@
|
||||||
// Copyright (c) .NET Foundation. All rights reserved.
|
// Copyright (c) .NET Foundation. All rights reserved.
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
using Microsoft.Extensions.Configuration;
|
using Microsoft.Extensions.Configuration;
|
||||||
using Microsoft.Extensions.Options;
|
using Microsoft.Extensions.Options;
|
||||||
|
|
||||||
namespace Microsoft.Extensions.Logging.AzureAppServices.Internal
|
namespace Microsoft.Extensions.Logging.AzureAppServices
|
||||||
{
|
{
|
||||||
public class ConfigurationBasedLevelSwitcher: IConfigureOptions<LoggerFilterOptions>
|
internal class ConfigurationBasedLevelSwitcher: IConfigureOptions<LoggerFilterOptions>
|
||||||
{
|
{
|
||||||
private readonly IConfiguration _configuration;
|
private readonly IConfiguration _configuration;
|
||||||
private readonly Type _provider;
|
private readonly Type _provider;
|
||||||
|
|
@ -47,4 +47,4 @@ namespace Microsoft.Extensions.Logging.AzureAppServices.Internal
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1,13 +1,13 @@
|
||||||
// Copyright (c) .NET Foundation. All rights reserved.
|
// Copyright (c) .NET Foundation. All rights reserved.
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||||
|
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using Microsoft.Extensions.Configuration;
|
using Microsoft.Extensions.Configuration;
|
||||||
using Microsoft.Extensions.Options;
|
using Microsoft.Extensions.Options;
|
||||||
|
|
||||||
namespace Microsoft.Extensions.Logging.AzureAppServices.Internal
|
namespace Microsoft.Extensions.Logging.AzureAppServices
|
||||||
{
|
{
|
||||||
public class FileLoggerConfigureOptions : BatchLoggerConfigureOptions, IConfigureOptions<AzureFileLoggerOptions>
|
internal class FileLoggerConfigureOptions : BatchLoggerConfigureOptions, IConfigureOptions<AzureFileLoggerOptions>
|
||||||
{
|
{
|
||||||
private readonly IWebAppContext _context;
|
private readonly IWebAppContext _context;
|
||||||
|
|
||||||
|
|
@ -23,4 +23,4 @@ namespace Microsoft.Extensions.Logging.AzureAppServices.Internal
|
||||||
options.LogDirectory = Path.Combine(_context.HomeFolder, "LogFiles", "Application");
|
options.LogDirectory = Path.Combine(_context.HomeFolder, "LogFiles", "Application");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -8,7 +8,7 @@ using System.Threading;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Microsoft.Extensions.Options;
|
using Microsoft.Extensions.Options;
|
||||||
|
|
||||||
namespace Microsoft.Extensions.Logging.AzureAppServices.Internal
|
namespace Microsoft.Extensions.Logging.AzureAppServices
|
||||||
{
|
{
|
||||||
[ProviderAlias("AzureAppServicesFile")]
|
[ProviderAlias("AzureAppServicesFile")]
|
||||||
public class FileLoggerProvider : BatchingLoggerProvider
|
public class FileLoggerProvider : BatchingLoggerProvider
|
||||||
|
|
@ -18,7 +18,7 @@ namespace Microsoft.Extensions.Logging.AzureAppServices.Internal
|
||||||
private readonly int? _maxFileSize;
|
private readonly int? _maxFileSize;
|
||||||
private readonly int? _maxRetainedFiles;
|
private readonly int? _maxRetainedFiles;
|
||||||
|
|
||||||
public FileLoggerProvider(IOptionsMonitor<AzureFileLoggerOptions> options) : base(options)
|
internal FileLoggerProvider(IOptionsMonitor<AzureFileLoggerOptions> options) : base(options)
|
||||||
{
|
{
|
||||||
var loggerOptions = options.CurrentValue;
|
var loggerOptions = options.CurrentValue;
|
||||||
_path = loggerOptions.LogDirectory;
|
_path = loggerOptions.LogDirectory;
|
||||||
|
|
@ -27,7 +27,7 @@ namespace Microsoft.Extensions.Logging.AzureAppServices.Internal
|
||||||
_maxRetainedFiles = loggerOptions.RetainedFileCountLimit;
|
_maxRetainedFiles = loggerOptions.RetainedFileCountLimit;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override async Task WriteMessagesAsync(IEnumerable<LogMessage> messages, CancellationToken cancellationToken)
|
internal override async Task WriteMessagesAsync(IEnumerable<LogMessage> messages, CancellationToken cancellationToken)
|
||||||
{
|
{
|
||||||
Directory.CreateDirectory(_path);
|
Directory.CreateDirectory(_path);
|
||||||
|
|
||||||
|
|
@ -57,12 +57,12 @@ namespace Microsoft.Extensions.Logging.AzureAppServices.Internal
|
||||||
return Path.Combine(_path, $"{_fileName}{group.Year:0000}{group.Month:00}{group.Day:00}.txt");
|
return Path.Combine(_path, $"{_fileName}{group.Year:0000}{group.Month:00}{group.Day:00}.txt");
|
||||||
}
|
}
|
||||||
|
|
||||||
public (int Year, int Month, int Day) GetGrouping(LogMessage message)
|
private (int Year, int Month, int Day) GetGrouping(LogMessage message)
|
||||||
{
|
{
|
||||||
return (message.Timestamp.Year, message.Timestamp.Month, message.Timestamp.Day);
|
return (message.Timestamp.Year, message.Timestamp.Month, message.Timestamp.Day);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void RollFiles()
|
private void RollFiles()
|
||||||
{
|
{
|
||||||
if (_maxRetainedFiles > 0)
|
if (_maxRetainedFiles > 0)
|
||||||
{
|
{
|
||||||
|
|
@ -78,4 +78,4 @@ namespace Microsoft.Extensions.Logging.AzureAppServices.Internal
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (c) .NET Foundation. All rights reserved.
|
// Copyright (c) .NET Foundation. All rights reserved.
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
|
|
@ -6,12 +6,12 @@ using System.IO;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
namespace Microsoft.Extensions.Logging.AzureAppServices.Internal
|
namespace Microsoft.Extensions.Logging.AzureAppServices
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Represents an append blob, a type of blob where blocks of data are always committed to the end of the blob.
|
/// Represents an append blob, a type of blob where blocks of data are always committed to the end of the blob.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public interface ICloudAppendBlob
|
internal interface ICloudAppendBlob
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Initiates an asynchronous operation to open a stream for writing to the blob.
|
/// Initiates an asynchronous operation to open a stream for writing to the blob.
|
||||||
|
|
@ -19,4 +19,4 @@ namespace Microsoft.Extensions.Logging.AzureAppServices.Internal
|
||||||
/// <returns>A <see cref="T:System.Threading.Tasks.Task`1" /> object of type <see cref="Stream" /> that represents the asynchronous operation.</returns>
|
/// <returns>A <see cref="T:System.Threading.Tasks.Task`1" /> object of type <see cref="Stream" /> that represents the asynchronous operation.</returns>
|
||||||
Task AppendAsync(ArraySegment<byte> data, CancellationToken cancellationToken);
|
Task AppendAsync(ArraySegment<byte> data, CancellationToken cancellationToken);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1,12 +1,12 @@
|
||||||
// Copyright (c) .NET Foundation. All rights reserved.
|
// Copyright (c) .NET Foundation. All rights reserved.
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||||
|
|
||||||
namespace Microsoft.Extensions.Logging.AzureAppServices.Internal
|
namespace Microsoft.Extensions.Logging.AzureAppServices
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Represents an Azure WebApp context
|
/// Represents an Azure WebApp context
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public interface IWebAppContext
|
internal interface IWebAppContext
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets the path to the home folder if running in Azure WebApp
|
/// Gets the path to the home folder if running in Azure WebApp
|
||||||
|
|
@ -1,25 +0,0 @@
|
||||||
// Copyright (c) .NET Foundation. All rights reserved.
|
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
|
||||||
|
|
||||||
namespace Microsoft.Extensions.Logging.AzureAppServices.Internal
|
|
||||||
{
|
|
||||||
internal class ForwardingLoggerProvider : ILoggerProvider
|
|
||||||
{
|
|
||||||
private readonly ILoggerFactory _loggerFactory;
|
|
||||||
|
|
||||||
public ForwardingLoggerProvider(ILoggerFactory loggerFactory)
|
|
||||||
{
|
|
||||||
_loggerFactory = loggerFactory;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void Dispose()
|
|
||||||
{
|
|
||||||
_loggerFactory.Dispose();
|
|
||||||
}
|
|
||||||
|
|
||||||
public ILogger CreateLogger(string categoryName)
|
|
||||||
{
|
|
||||||
return _loggerFactory.CreateLogger(categoryName);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,13 +0,0 @@
|
||||||
// Copyright (c) .NET Foundation. All rights reserved.
|
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
|
||||||
|
|
||||||
using System;
|
|
||||||
|
|
||||||
namespace Microsoft.Extensions.Logging.AzureAppServices.Internal
|
|
||||||
{
|
|
||||||
public struct LogMessage
|
|
||||||
{
|
|
||||||
public DateTimeOffset Timestamp { get; set; }
|
|
||||||
public string Message { get; set; }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -0,0 +1,19 @@
|
||||||
|
// Copyright (c) .NET Foundation. All rights reserved.
|
||||||
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||||
|
|
||||||
|
using System;
|
||||||
|
|
||||||
|
namespace Microsoft.Extensions.Logging.AzureAppServices
|
||||||
|
{
|
||||||
|
internal readonly struct LogMessage
|
||||||
|
{
|
||||||
|
public LogMessage(DateTimeOffset timestamp, string message)
|
||||||
|
{
|
||||||
|
Timestamp = timestamp;
|
||||||
|
Message = message;
|
||||||
|
}
|
||||||
|
|
||||||
|
public DateTimeOffset Timestamp { get; }
|
||||||
|
public string Message { get; }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -5,3 +5,4 @@ using System.Runtime.CompilerServices;
|
||||||
|
|
||||||
|
|
||||||
[assembly: InternalsVisibleTo("Microsoft.Extensions.Logging.AzureAppServices.Tests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")]
|
[assembly: InternalsVisibleTo("Microsoft.Extensions.Logging.AzureAppServices.Tests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")]
|
||||||
|
[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2, PublicKey=0024000004800000940000000602000000240000525341310004000001000100c547cac37abd99c8db225ef2f6c8a3602f3b3606cc9891605d02baa56104f4cfc0734aa39b93bf7852f7d9266654753cc297e7d2edfe0bac1cdcf9f717241550e0a7b191195b7667bb4f64bcb8e2121380fd1d9d46ad2d92d2d15605093924cceaf74c4861eff62abf69b9291ed0a340e113be11e6a7d3113e92484cf7045cc7")]
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,12 @@
|
||||||
// Copyright (c) .NET Foundation. All rights reserved.
|
// Copyright (c) .NET Foundation. All rights reserved.
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||||
|
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using Microsoft.Extensions.Configuration;
|
using Microsoft.Extensions.Configuration;
|
||||||
|
|
||||||
namespace Microsoft.Extensions.Logging.AzureAppServices.Internal
|
namespace Microsoft.Extensions.Logging.AzureAppServices
|
||||||
{
|
{
|
||||||
public class SiteConfigurationProvider
|
internal class SiteConfigurationProvider
|
||||||
{
|
{
|
||||||
public static IConfiguration GetAzureLoggingConfiguration(IWebAppContext context)
|
public static IConfiguration GetAzureLoggingConfiguration(IWebAppContext context)
|
||||||
{
|
{
|
||||||
|
|
@ -19,4 +19,4 @@ namespace Microsoft.Extensions.Logging.AzureAppServices.Internal
|
||||||
.Build();
|
.Build();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1,14 +1,14 @@
|
||||||
// Copyright (c) .NET Foundation. All rights reserved.
|
// Copyright (c) .NET Foundation. All rights reserved.
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
|
|
||||||
namespace Microsoft.Extensions.Logging.AzureAppServices.Internal
|
namespace Microsoft.Extensions.Logging.AzureAppServices
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Represents the default implementation of <see cref="IWebAppContext"/>.
|
/// Represents the default implementation of <see cref="IWebAppContext"/>.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class WebAppContext : IWebAppContext
|
internal class WebAppContext : IWebAppContext
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets the default instance of the WebApp context.
|
/// Gets the default instance of the WebApp context.
|
||||||
|
|
@ -0,0 +1,24 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"TypeId": "public class Microsoft.Extensions.Logging.AzureAppServices.AzureAppServicesDiagnosticsSettings",
|
||||||
|
"Kind": "Removal"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"TypeId": "public class Microsoft.Extensions.Logging.AzureAppServices.AzureBlobLoggerOptions : Microsoft.Extensions.Logging.AzureAppServices.Internal.BatchingLoggerOptions",
|
||||||
|
"Kind": "Removal"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"TypeId": "public class Microsoft.Extensions.Logging.AzureAppServices.AzureFileLoggerOptions : Microsoft.Extensions.Logging.AzureAppServices.Internal.BatchingLoggerOptions",
|
||||||
|
"Kind": "Removal"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"TypeId": "public static class Microsoft.Extensions.Logging.AzureAppServicesLoggerFactoryExtensions",
|
||||||
|
"MemberId": "public static Microsoft.Extensions.Logging.ILoggerFactory AddAzureWebAppDiagnostics(this Microsoft.Extensions.Logging.ILoggerFactory factory)",
|
||||||
|
"Kind": "Removal"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"TypeId": "public static class Microsoft.Extensions.Logging.AzureAppServicesLoggerFactoryExtensions",
|
||||||
|
"MemberId": "public static Microsoft.Extensions.Logging.ILoggerFactory AddAzureWebAppDiagnostics(this Microsoft.Extensions.Logging.ILoggerFactory factory, Microsoft.Extensions.Logging.AzureAppServices.AzureAppServicesDiagnosticsSettings settings)",
|
||||||
|
"Kind": "Removal"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (c) .NET Foundation. All rights reserved.
|
// Copyright (c) .NET Foundation. All rights reserved.
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
|
|
@ -6,7 +6,6 @@ using System.Net;
|
||||||
using System.Net.Http;
|
using System.Net.Http;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Microsoft.Extensions.Logging.AzureAppServices.Internal;
|
|
||||||
using Xunit;
|
using Xunit;
|
||||||
|
|
||||||
namespace Microsoft.Extensions.Logging.AzureAppServices.Test
|
namespace Microsoft.Extensions.Logging.AzureAppServices.Test
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (c) .NET Foundation. All rights reserved.
|
// Copyright (c) .NET Foundation. All rights reserved.
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
|
|
@ -9,7 +9,6 @@ using System.Threading;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Moq;
|
using Moq;
|
||||||
using Xunit;
|
using Xunit;
|
||||||
using Microsoft.Extensions.Logging.AzureAppServices.Internal;
|
|
||||||
|
|
||||||
namespace Microsoft.Extensions.Logging.AzureAppServices.Test
|
namespace Microsoft.Extensions.Logging.AzureAppServices.Test
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,8 @@
|
||||||
// Copyright (c) .NET Foundation. All rights reserved.
|
// Copyright (c) .NET Foundation. All rights reserved.
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using Microsoft.Extensions.Logging.AzureAppServices.Internal;
|
|
||||||
using Moq;
|
using Moq;
|
||||||
using Xunit;
|
using Xunit;
|
||||||
|
|
||||||
|
|
@ -67,4 +66,4 @@ namespace Microsoft.Extensions.Logging.AzureAppServices.Test
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,6 @@ using System.Linq;
|
||||||
using System.Text.RegularExpressions;
|
using System.Text.RegularExpressions;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Microsoft.Extensions.Logging.AzureAppServices.Internal;
|
|
||||||
using Xunit;
|
using Xunit;
|
||||||
|
|
||||||
namespace Microsoft.Extensions.Logging.AzureAppServices.Test
|
namespace Microsoft.Extensions.Logging.AzureAppServices.Test
|
||||||
|
|
@ -121,7 +120,7 @@ namespace Microsoft.Extensions.Logging.AzureAppServices.Test
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override Task WriteMessagesAsync(IEnumerable<LogMessage> messages, CancellationToken token)
|
internal override Task WriteMessagesAsync(IEnumerable<LogMessage> messages, CancellationToken token)
|
||||||
{
|
{
|
||||||
Batches.Add(messages.ToArray());
|
Batches.Add(messages.ToArray());
|
||||||
return Task.CompletedTask;
|
return Task.CompletedTask;
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,10 @@
|
||||||
// Copyright (c) .NET Foundation. All rights reserved.
|
// Copyright (c) .NET Foundation. All rights reserved.
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using Microsoft.Extensions.Configuration;
|
using Microsoft.Extensions.Configuration;
|
||||||
using Microsoft.Extensions.Logging.AzureAppServices.Internal;
|
|
||||||
using Moq;
|
using Moq;
|
||||||
using Xunit;
|
using Xunit;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,6 @@ using System;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Microsoft.Extensions.Logging.AzureAppServices.Internal;
|
|
||||||
using Xunit;
|
using Xunit;
|
||||||
|
|
||||||
namespace Microsoft.Extensions.Logging.AzureAppServices.Test
|
namespace Microsoft.Extensions.Logging.AzureAppServices.Test
|
||||||
|
|
@ -119,4 +118,4 @@ namespace Microsoft.Extensions.Logging.AzureAppServices.Test
|
||||||
}, actualFiles);
|
}, actualFiles);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,9 @@
|
||||||
// Copyright (c) .NET Foundation. All rights reserved.
|
// Copyright (c) .NET Foundation. All rights reserved.
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||||
|
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using Microsoft.Extensions.Configuration;
|
using Microsoft.Extensions.Configuration;
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
using Microsoft.Extensions.Logging.AzureAppServices.Internal;
|
|
||||||
using Microsoft.Extensions.Options;
|
using Microsoft.Extensions.Options;
|
||||||
using Moq;
|
using Moq;
|
||||||
using Xunit;
|
using Xunit;
|
||||||
|
|
@ -66,4 +65,4 @@ namespace Microsoft.Extensions.Logging.AzureAppServices.Test
|
||||||
Assert.Equal(4, serviceCollection.Count(d => d.ServiceType == typeof(IConfigureOptions<LoggerFilterOptions>)));
|
Assert.Equal(4, serviceCollection.Count(d => d.ServiceType == typeof(IConfigureOptions<LoggerFilterOptions>)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,6 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Microsoft.Extensions.Logging.AzureAppServices.Internal;
|
|
||||||
using Microsoft.Extensions.Options;
|
|
||||||
|
|
||||||
namespace Microsoft.Extensions.Logging.AzureAppServices.Test
|
namespace Microsoft.Extensions.Logging.AzureAppServices.Test
|
||||||
{
|
{
|
||||||
|
|
@ -27,4 +25,4 @@ namespace Microsoft.Extensions.Logging.AzureAppServices.Test
|
||||||
return IntervalControl.IntervalAsync();
|
return IntervalControl.IntervalAsync();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,6 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Microsoft.Extensions.Logging.AzureAppServices.Internal;
|
|
||||||
|
|
||||||
namespace Microsoft.Extensions.Logging.AzureAppServices.Test
|
namespace Microsoft.Extensions.Logging.AzureAppServices.Test
|
||||||
{
|
{
|
||||||
|
|
@ -33,4 +32,4 @@ namespace Microsoft.Extensions.Logging.AzureAppServices.Test
|
||||||
return IntervalControl.IntervalAsync();
|
return IntervalControl.IntervalAsync();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,8 @@
|
||||||
// Copyright (c) .NET Foundation. All rights reserved.
|
// Copyright (c) .NET Foundation. All rights reserved.
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||||
|
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using Microsoft.Extensions.Configuration;
|
using Microsoft.Extensions.Configuration;
|
||||||
using Microsoft.Extensions.Logging.AzureAppServices.Internal;
|
|
||||||
using Xunit;
|
using Xunit;
|
||||||
|
|
||||||
namespace Microsoft.Extensions.Logging.AzureAppServices.Test
|
namespace Microsoft.Extensions.Logging.AzureAppServices.Test
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue