13
13
// limitations under the License.
14
14
15
15
using System ;
16
+ using System . Reflection ;
16
17
using Microsoft . Extensions . Configuration ;
17
18
using Microsoft . Extensions . DependencyModel ;
18
19
using Serilog . Configuration ;
@@ -116,7 +117,7 @@ public static LoggerConfiguration ConfigurationSection(
116
117
/// <param name="settingConfiguration">Logger setting configuration.</param>
117
118
/// <param name="configuration">A configuration object which contains a Serilog section.</param>
118
119
/// <param name="sectionName">A section name for section which contains a Serilog section.</param>
119
- /// <param name="configurationAssemblySource">Defines how the package identifies assemblies to scan for sinks and other Types .</param>
120
+ /// <param name="configurationAssemblySource">Defines how the package identifies assemblies to scan for sinks and other types .</param>
120
121
/// <returns>An object allowing configuration to continue.</returns>
121
122
public static LoggerConfiguration Configuration (
122
123
this LoggerSettingsConfiguration settingConfiguration ,
@@ -140,7 +141,7 @@ public static LoggerConfiguration Configuration(
140
141
/// </summary>
141
142
/// <param name="settingConfiguration">Logger setting configuration.</param>
142
143
/// <param name="configuration">A configuration object which contains a Serilog section.</param>
143
- /// <param name="configurationAssemblySource">Defines how the package identifies assemblies to scan for sinks and other Types .</param>
144
+ /// <param name="configurationAssemblySource">Defines how the package identifies assemblies to scan for sinks and other types .</param>
144
145
/// <returns>An object allowing configuration to continue.</returns>
145
146
public static LoggerConfiguration Configuration (
146
147
this LoggerSettingsConfiguration settingConfiguration ,
@@ -154,7 +155,7 @@ public static LoggerConfiguration Configuration(
154
155
/// </summary>
155
156
/// <param name="settingConfiguration">Logger setting configuration.</param>
156
157
/// <param name="configSection">The Serilog configuration section</param>
157
- /// <param name="configurationAssemblySource">Defines how the package identifies assemblies to scan for sinks and other Types .</param>
158
+ /// <param name="configurationAssemblySource">Defines how the package identifies assemblies to scan for sinks and other types .</param>
158
159
/// <returns>An object allowing configuration to continue.</returns>
159
160
[ Obsolete ( "Use ReadFrom.Configuration(IConfiguration configuration, string sectionName, ConfigurationAssemblySource configurationAssemblySource) instead." ) ]
160
161
public static LoggerConfiguration ConfigurationSection (
@@ -169,5 +170,39 @@ public static LoggerConfiguration ConfigurationSection(
169
170
170
171
return settingConfiguration . Settings ( new ConfigurationReader ( configSection , assemblyFinder , configuration : null ) ) ;
171
172
}
173
+
174
+ /// <summary>
175
+ /// Reads logger settings from the provided configuration object using the provided section name.
176
+ /// </summary>
177
+ /// <param name="settingConfiguration">Logger setting configuration.</param>
178
+ /// <param name="configuration">A configuration object which contains a Serilog section.</param>
179
+ /// <param name="sectionName">A section name for section which contains a Serilog section.</param>
180
+ /// <param name="assemblies">A collection of assemblies that contains sinks and other types.</param>
181
+ /// <returns>An object allowing configuration to continue.</returns>
182
+ public static LoggerConfiguration Configuration (
183
+ this LoggerSettingsConfiguration settingConfiguration ,
184
+ IConfiguration configuration ,
185
+ string sectionName ,
186
+ params Assembly [ ] assemblies )
187
+ {
188
+ if ( settingConfiguration == null ) throw new ArgumentNullException ( nameof ( settingConfiguration ) ) ;
189
+ if ( configuration == null ) throw new ArgumentNullException ( nameof ( configuration ) ) ;
190
+ if ( sectionName == null ) throw new ArgumentNullException ( nameof ( sectionName ) ) ;
191
+
192
+ return settingConfiguration . Settings ( new ConfigurationReader ( configuration . GetSection ( sectionName ) , assemblies , new ResolutionContext ( configuration ) ) ) ;
193
+ }
194
+
195
+ /// <summary>
196
+ /// Reads logger settings from the provided configuration object using the default section name.
197
+ /// </summary>
198
+ /// <param name="settingConfiguration">Logger setting configuration.</param>
199
+ /// <param name="configuration">A configuration object which contains a Serilog section.</param>
200
+ /// <param name="assemblies">A collection of assemblies that contains sinks and other types.</param>
201
+ /// <returns>An object allowing configuration to continue.</returns>
202
+ public static LoggerConfiguration Configuration (
203
+ this LoggerSettingsConfiguration settingConfiguration ,
204
+ IConfiguration configuration ,
205
+ params Assembly [ ] assemblies )
206
+ => Configuration ( settingConfiguration , configuration , DefaultSectionName , assemblies ) ;
172
207
}
173
208
}
0 commit comments