@@ -47,6 +47,28 @@ public static LoggerConfiguration Configuration(
47
47
IConfiguration configuration ,
48
48
string sectionName ,
49
49
DependencyContext dependencyContext = null )
50
+ {
51
+ return Configuration ( settingConfiguration , configuration , sectionName , out _ , dependencyContext ) ;
52
+ }
53
+
54
+ /// <summary>
55
+ /// Reads logger settings from the provided configuration object using the provided section name. Generally this
56
+ /// is preferable over the other method that takes a configuration section. Only this version will populate
57
+ /// IConfiguration parameters on target methods.
58
+ /// </summary>
59
+ /// <param name="settingConfiguration">Logger setting configuration.</param>
60
+ /// <param name="configuration">A configuration object which contains a Serilog section.</param>
61
+ /// <param name="sectionName">A section name for section which contains a Serilog section.</param>
62
+ /// <param name="loadedConfiguration">Contains information about the loaded configuration upon return.</param>
63
+ /// <param name="dependencyContext">The dependency context from which sink/enricher packages can be located. If not supplied, the platform
64
+ /// default will be used.</param>
65
+ /// <returns>An object allowing configuration to continue.</returns>
66
+ public static LoggerConfiguration Configuration (
67
+ this LoggerSettingsConfiguration settingConfiguration ,
68
+ IConfiguration configuration ,
69
+ string sectionName ,
70
+ out LoadedConfiguration loadedConfiguration ,
71
+ DependencyContext dependencyContext = null )
50
72
{
51
73
if ( settingConfiguration == null ) throw new ArgumentNullException ( nameof ( settingConfiguration ) ) ;
52
74
if ( configuration == null ) throw new ArgumentNullException ( nameof ( configuration ) ) ;
@@ -56,11 +78,10 @@ public static LoggerConfiguration Configuration(
56
78
? AssemblyFinder . Auto ( )
57
79
: AssemblyFinder . ForDependencyContext ( dependencyContext ) ;
58
80
59
- return settingConfiguration . Settings (
60
- new ConfigurationReader (
61
- configuration . GetSection ( sectionName ) ,
62
- assemblyFinder ,
63
- configuration ) ) ;
81
+ var configurationReader = new ConfigurationReader ( configuration . GetSection ( sectionName ) , assemblyFinder , configuration ) ;
82
+ var loggerConfiguration = settingConfiguration . Settings ( configurationReader ) ;
83
+ loadedConfiguration = configurationReader . GetLoadedConfiguration ( ) ;
84
+ return loggerConfiguration ;
64
85
}
65
86
66
87
/// <summary>
@@ -79,6 +100,24 @@ public static LoggerConfiguration Configuration(
79
100
DependencyContext dependencyContext = null )
80
101
=> Configuration ( settingConfiguration , configuration , DefaultSectionName , dependencyContext ) ;
81
102
103
+ /// <summary>
104
+ /// Reads logger settings from the provided configuration object using the default section name. Generally this
105
+ /// is preferable over the other method that takes a configuration section. Only this version will populate
106
+ /// IConfiguration parameters on target methods.
107
+ /// </summary>
108
+ /// <param name="settingConfiguration">Logger setting configuration.</param>
109
+ /// <param name="configuration">A configuration object which contains a Serilog section.</param>
110
+ /// <param name="loadedConfiguration">Contains information about the loaded configuration upon return.</param>
111
+ /// <param name="dependencyContext">The dependency context from which sink/enricher packages can be located. If not supplied, the platform
112
+ /// default will be used.</param>
113
+ /// <returns>An object allowing configuration to continue.</returns>
114
+ public static LoggerConfiguration Configuration (
115
+ this LoggerSettingsConfiguration settingConfiguration ,
116
+ IConfiguration configuration ,
117
+ out LoadedConfiguration loadedConfiguration ,
118
+ DependencyContext dependencyContext = null )
119
+ => Configuration ( settingConfiguration , configuration , DefaultSectionName , out loadedConfiguration , dependencyContext ) ;
120
+
82
121
/// <summary>
83
122
/// Reads logger settings from the provided configuration section. Generally it is preferable to use the other
84
123
/// extension method that takes the full configuration object.
@@ -123,14 +162,36 @@ public static LoggerConfiguration Configuration(
123
162
IConfiguration configuration ,
124
163
string sectionName ,
125
164
ConfigurationAssemblySource configurationAssemblySource )
165
+ => Configuration ( settingConfiguration , configuration , sectionName , configurationAssemblySource , out _ ) ;
166
+
167
+ /// <summary>
168
+ /// Reads logger settings from the provided configuration object using the provided section name. Generally this
169
+ /// is preferable over the other method that takes a configuration section. Only this version will populate
170
+ /// IConfiguration parameters on target methods.
171
+ /// </summary>
172
+ /// <param name="settingConfiguration">Logger setting configuration.</param>
173
+ /// <param name="configuration">A configuration object which contains a Serilog section.</param>
174
+ /// <param name="sectionName">A section name for section which contains a Serilog section.</param>
175
+ /// <param name="configurationAssemblySource">Defines how the package identifies assemblies to scan for sinks and other types.</param>
176
+ /// <param name="loadedConfiguration">Contains information about the loaded configuration upon return.</param>
177
+ /// <returns>An object allowing configuration to continue.</returns>
178
+ public static LoggerConfiguration Configuration (
179
+ this LoggerSettingsConfiguration settingConfiguration ,
180
+ IConfiguration configuration ,
181
+ string sectionName ,
182
+ ConfigurationAssemblySource configurationAssemblySource ,
183
+ out LoadedConfiguration loadedConfiguration )
126
184
{
127
185
if ( settingConfiguration == null ) throw new ArgumentNullException ( nameof ( settingConfiguration ) ) ;
128
186
if ( configuration == null ) throw new ArgumentNullException ( nameof ( configuration ) ) ;
129
187
if ( sectionName == null ) throw new ArgumentNullException ( nameof ( sectionName ) ) ;
130
188
131
189
var assemblyFinder = AssemblyFinder . ForSource ( configurationAssemblySource ) ;
132
190
133
- return settingConfiguration . Settings ( new ConfigurationReader ( configuration . GetSection ( sectionName ) , assemblyFinder , configuration ) ) ;
191
+ var configurationReader = new ConfigurationReader ( configuration . GetSection ( sectionName ) , assemblyFinder , configuration ) ;
192
+ var loggerConfiguration = settingConfiguration . Settings ( configurationReader ) ;
193
+ loadedConfiguration = configurationReader . GetLoadedConfiguration ( ) ;
194
+ return loggerConfiguration ;
134
195
}
135
196
136
197
/// <summary>
@@ -183,12 +244,32 @@ public static LoggerConfiguration Configuration(
183
244
IConfiguration configuration ,
184
245
string sectionName ,
185
246
params Assembly [ ] assemblies )
247
+ => Configuration ( settingConfiguration , configuration , sectionName , out _ , assemblies ) ;
248
+
249
+ /// <summary>
250
+ /// Reads logger settings from the provided configuration object using the provided section name.
251
+ /// </summary>
252
+ /// <param name="settingConfiguration">Logger setting configuration.</param>
253
+ /// <param name="configuration">A configuration object which contains a Serilog section.</param>
254
+ /// <param name="sectionName">A section name for section which contains a Serilog section.</param>
255
+ /// <param name="loadedConfiguration">Contains information about the loaded configuration upon return.</param>
256
+ /// <param name="assemblies">A collection of assemblies that contains sinks and other types.</param>
257
+ /// <returns>An object allowing configuration to continue.</returns>
258
+ public static LoggerConfiguration Configuration (
259
+ this LoggerSettingsConfiguration settingConfiguration ,
260
+ IConfiguration configuration ,
261
+ string sectionName ,
262
+ out LoadedConfiguration loadedConfiguration ,
263
+ params Assembly [ ] assemblies )
186
264
{
187
265
if ( settingConfiguration == null ) throw new ArgumentNullException ( nameof ( settingConfiguration ) ) ;
188
266
if ( configuration == null ) throw new ArgumentNullException ( nameof ( configuration ) ) ;
189
267
if ( sectionName == null ) throw new ArgumentNullException ( nameof ( sectionName ) ) ;
190
268
191
- return settingConfiguration . Settings ( new ConfigurationReader ( configuration . GetSection ( sectionName ) , assemblies , new ResolutionContext ( configuration ) ) ) ;
269
+ var configurationReader = new ConfigurationReader ( configuration . GetSection ( sectionName ) , assemblies , new ResolutionContext ( configuration ) ) ;
270
+ var loggerConfiguration = settingConfiguration . Settings ( configurationReader ) ;
271
+ loadedConfiguration = configurationReader . GetLoadedConfiguration ( ) ;
272
+ return loggerConfiguration ;
192
273
}
193
274
194
275
/// <summary>
0 commit comments