Skip to content
This repository was archived by the owner on Dec 13, 2018. It is now read-only.

Add a way to get configuration section associated with logger provider #706

Merged
merged 4 commits into from
Sep 21, 2017

Conversation

pakrym
Copy link
Contributor

@pakrym pakrym commented Sep 18, 2017

And fix IncludeScopes. Templates would need to be updated to move IncludeScopes to Console section.

namespace Microsoft.Extensions.Logging
{
/// <inheritdoc />
public class LoggerProviderOptionsChangeTokenSource<TOptions, TProvider> : ConfigurationChangeTokenSource<TOptions>
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is useful for provider implementations but not sure if it's worth having here.

{
internal class ProviderAliasUtilities
{
private const string AliasAttibuteTypeFullName = "Microsoft.Extensions.Logging.ProviderAliasAttribute";
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is by name so that 3rd party providers don't have to take an unneeded dependency ?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some of them cannot build against aspnetcore 2.0 (AI)


namespace Microsoft.Extensions.Logging.Configuration
{
internal class LoggingConfiguration
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is so we don't assume that we can just take IE<IConfiguration> right?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yep, I don't want random IConfiguration's in DI, especially if they were passed into logging.

{
internal class LoggerProviderConfigurationFactory : ILoggerProviderConfigurationFactory
{
private readonly IEnumerable<LoggingConfiguration> _configurations;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is pretty weird. Usually configuration is composed at the provider level not by using multiple IConfiguration instances. Why do we do this?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We allow composition of logging configurations for light-up scenarios (AI is adding another logging config file), so when you call AddConfiguration multiple times filtering rules get flattened in one list. I just simulated the same behavior for configuration sections.

Copy link
Member

@davidfowl davidfowl left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There are a few design questions I'd like to discuss but this looks good overall.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants