Skip to content

Commit ecfa6bc

Browse files
committed
Add note to README about the invariant culture change
And also mark all ReadFrom.Configuration() methods obsolete to encourage people to migrate to the new method that uses the invariant culture. Note that when using `ReadFrom.Configuration(configuration)` without any additional parameter, the new method that takes a `ConfigurationContext` will be used automatically. This is exactly what happens in the sample project.
1 parent fa9612e commit ecfa6bc

File tree

4 files changed

+10
-2
lines changed

4 files changed

+10
-2
lines changed

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -285,6 +285,8 @@ Some Serilog packages require a reference to a logger configuration object. The
285285

286286
When the configuration specifies a discrete value for a parameter (such as a string literal), the package will attempt to convert that value to the target method's declared CLR type of the parameter. Additional explicit handling is provided for parsing strings to `Uri`, `TimeSpan`, `enum`, arrays and custom collections.
287287

288+
Since version 3.5.0, conversion will use the invariant culture (`CultureInfo.InvariantCulture`) as long as the `ReadFrom.Configuration(IConfiguration configuration, ConfigurationContext context)` method is used. Obsolete methods use the current culture to preserve backward compatibility.
289+
288290
### Static member support
289291

290292
Static member access can be used for passing to the configuration argument via [special](https://github.com/serilog/serilog-settings-configuration/blob/dev/test/Serilog.Settings.Configuration.Tests/StringArgumentValueTests.cs#L35) syntax:

src/Serilog.Settings.Configuration/ConfigurationLoggerConfigurationExtensions.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ public static class ConfigurationLoggerConfigurationExtensions
4242
/// <param name="dependencyContext">The dependency context from which sink/enricher packages can be located. If not supplied, the platform
4343
/// default will be used.</param>
4444
/// <returns>An object allowing configuration to continue.</returns>
45+
[Obsolete("Use ReadFrom.Configuration(IConfiguration configuration, ConfigurationContext context) instead.")]
4546
public static LoggerConfiguration Configuration(
4647
this LoggerSettingsConfiguration settingConfiguration,
4748
IConfiguration configuration,
@@ -66,6 +67,7 @@ public static LoggerConfiguration Configuration(
6667
/// <param name="dependencyContext">The dependency context from which sink/enricher packages can be located. If not supplied, the platform
6768
/// default will be used.</param>
6869
/// <returns>An object allowing configuration to continue.</returns>
70+
[Obsolete("Use ReadFrom.Configuration(IConfiguration configuration, ConfigurationContext context) instead.")]
6971
public static LoggerConfiguration Configuration(
7072
this LoggerSettingsConfiguration settingConfiguration,
7173
IConfiguration configuration,
@@ -112,6 +114,7 @@ public static LoggerConfiguration ConfigurationSection(
112114
/// <param name="sectionName">A section name for section which contains a Serilog section.</param>
113115
/// <param name="configurationAssemblySource">Defines how the package identifies assemblies to scan for sinks and other types.</param>
114116
/// <returns>An object allowing configuration to continue.</returns>
117+
[Obsolete("Use ReadFrom.Configuration(IConfiguration configuration, ConfigurationContext context) instead.")]
115118
public static LoggerConfiguration Configuration(
116119
this LoggerSettingsConfiguration settingConfiguration,
117120
IConfiguration configuration,
@@ -135,6 +138,7 @@ public static LoggerConfiguration Configuration(
135138
/// <param name="configuration">A configuration object which contains a Serilog section.</param>
136139
/// <param name="configurationAssemblySource">Defines how the package identifies assemblies to scan for sinks and other types.</param>
137140
/// <returns>An object allowing configuration to continue.</returns>
141+
[Obsolete("Use ReadFrom.Configuration(IConfiguration configuration, ConfigurationContext context) instead.")]
138142
public static LoggerConfiguration Configuration(
139143
this LoggerSettingsConfiguration settingConfiguration,
140144
IConfiguration configuration,
@@ -171,6 +175,7 @@ public static LoggerConfiguration ConfigurationSection(
171175
/// <param name="sectionName">A section name for section which contains a Serilog section.</param>
172176
/// <param name="assemblies">A collection of assemblies that contains sinks and other types.</param>
173177
/// <returns>An object allowing configuration to continue.</returns>
178+
[Obsolete("Use ReadFrom.Configuration(IConfiguration configuration, ConfigurationContext context) instead.")]
174179
public static LoggerConfiguration Configuration(
175180
this LoggerSettingsConfiguration settingConfiguration,
176181
IConfiguration configuration,
@@ -192,6 +197,7 @@ public static LoggerConfiguration Configuration(
192197
/// <param name="configuration">A configuration object which contains a Serilog section.</param>
193198
/// <param name="assemblies">A collection of assemblies that contains sinks and other types.</param>
194199
/// <returns>An object allowing configuration to continue.</returns>
200+
[Obsolete("Use ReadFrom.Configuration(IConfiguration configuration, ConfigurationContext context) instead.")]
195201
public static LoggerConfiguration Configuration(
196202
this LoggerSettingsConfiguration settingConfiguration,
197203
IConfiguration configuration,

test/Serilog.Settings.Configuration.Tests/ConfigurationSettingsTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ public void ConfigurationAssembliesFromDllScanning()
103103
var log = new LoggerConfiguration()
104104
.ReadFrom.Configuration(
105105
configuration: config,
106-
configurationAssemblySource: ConfigurationAssemblySource.AlwaysScanDllFiles)
106+
context: new ConfigurationContext(ConfigurationAssemblySource.AlwaysScanDllFiles))
107107
.CreateLogger();
108108

109109
DummyConsoleSink.Emitted.Clear();

test/Serilog.Settings.Configuration.Tests/LoggerConfigurationExtensionsTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ public void ReadFromConfigurationDoesNotThrowWhenTryingToCallConfigurationMethod
9696
.Build();
9797

9898
_ = new LoggerConfiguration()
99-
.ReadFrom.Configuration(config, "NotSerilog")
99+
.ReadFrom.Configuration(config, new ConfigurationContext { SectionName = "NotSerilog" })
100100
.CreateLogger();
101101

102102
}

0 commit comments

Comments
 (0)