Skip to content

Commit 7bf2ebc

Browse files
authored
Merge pull request #269 from ckadluba/remove-duplicate-code-config-ext
Remove duplicate code in config extensions
2 parents cceb27f + ca1461b commit 7bf2ebc

File tree

5 files changed

+57
-62
lines changed

5 files changed

+57
-62
lines changed

src/Serilog.Sinks.MSSqlServer/Configuration/Extensions/Hybrid/LoggerConfigurationMSSqlServerExtensions.cs

Lines changed: 20 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -156,34 +156,8 @@ internal static LoggerConfiguration MSSqlServerInternal(
156156
if (loggerConfiguration == null)
157157
throw new ArgumentNullException(nameof(loggerConfiguration));
158158

159-
sinkOptions = sinkOptions ?? new SinkOptions();
160-
columnOptions = columnOptions ?? new ColumnOptions();
161-
162-
var serviceConfigSection = applySystemConfiguration.GetSinkConfigurationSection(AppConfigSectionName);
163-
if (serviceConfigSection != null)
164-
{
165-
connectionString = applySystemConfiguration.GetConnectionString(connectionString);
166-
columnOptions = applySystemConfiguration.ConfigureColumnOptions(serviceConfigSection, columnOptions);
167-
sinkOptions = applySystemConfiguration.ConfigureSinkOptions(serviceConfigSection, sinkOptions);
168-
169-
if (appConfiguration != null || columnOptionsSection != null || sinkOptionsSection != null)
170-
SelfLog.WriteLine("Warning: Both System.Configuration (app.config or web.config) and Microsoft.Extensions.Configuration are being applied to the MSSQLServer sink.");
171-
}
172-
173-
if (appConfiguration != null)
174-
{
175-
connectionString = applyMicrosoftExtensionsConfiguration.GetConnectionString(connectionString, appConfiguration);
176-
}
177-
178-
if (columnOptionsSection != null)
179-
{
180-
columnOptions = applyMicrosoftExtensionsConfiguration.ConfigureColumnOptions(columnOptions, columnOptionsSection);
181-
}
182-
183-
if (sinkOptionsSection != null)
184-
{
185-
sinkOptions = applyMicrosoftExtensionsConfiguration.ConfigureSinkOptions(sinkOptions, sinkOptionsSection);
186-
}
159+
ReadConfiguration(ref connectionString, ref sinkOptions, sinkOptionsSection, appConfiguration,
160+
ref columnOptions, columnOptionsSection, applySystemConfiguration, applyMicrosoftExtensionsConfiguration);
187161

188162
var sink = sinkFactory.Create(connectionString, sinkOptions, formatProvider, columnOptions, logEventFormatter);
189163

@@ -298,6 +272,24 @@ internal static LoggerConfiguration MSSqlServerInternal(
298272
if (loggerAuditSinkConfiguration == null)
299273
throw new ArgumentNullException(nameof(loggerAuditSinkConfiguration));
300274

275+
ReadConfiguration(ref connectionString, ref sinkOptions, sinkOptionsSection, appConfiguration,
276+
ref columnOptions, columnOptionsSection, applySystemConfiguration, applyMicrosoftExtensionsConfiguration);
277+
278+
var auditSink = auditSinkFactory.Create(connectionString, sinkOptions, formatProvider, columnOptions, logEventFormatter);
279+
280+
return loggerAuditSinkConfiguration.Sink(auditSink, restrictedToMinimumLevel);
281+
}
282+
283+
private static void ReadConfiguration(
284+
ref string connectionString,
285+
ref SinkOptions sinkOptions,
286+
IConfigurationSection sinkOptionsSection,
287+
IConfiguration appConfiguration,
288+
ref ColumnOptions columnOptions,
289+
IConfigurationSection columnOptionsSection,
290+
IApplySystemConfiguration applySystemConfiguration,
291+
IApplyMicrosoftExtensionsConfiguration applyMicrosoftExtensionsConfiguration)
292+
{
301293
sinkOptions = sinkOptions ?? new SinkOptions();
302294
columnOptions = columnOptions ?? new ColumnOptions();
303295

@@ -326,10 +318,6 @@ internal static LoggerConfiguration MSSqlServerInternal(
326318
{
327319
sinkOptions = applyMicrosoftExtensionsConfiguration.ConfigureSinkOptions(sinkOptions, sinkOptionsSection);
328320
}
329-
330-
var auditSink = auditSinkFactory.Create(connectionString, sinkOptions, formatProvider, columnOptions, logEventFormatter);
331-
332-
return loggerAuditSinkConfiguration.Sink(auditSink, restrictedToMinimumLevel);
333321
}
334322
}
335323
}

src/Serilog.Sinks.MSSqlServer/Configuration/Extensions/Microsoft.Extensions.Configuration/LoggerConfigurationMSSqlServerExtensions.cs

Lines changed: 19 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -119,13 +119,8 @@ public static LoggerConfiguration MSSqlServer(
119119
if (loggerConfiguration == null)
120120
throw new ArgumentNullException(nameof(loggerConfiguration));
121121

122-
sinkOptions = sinkOptions ?? new SinkOptions();
123-
columnOptions = columnOptions ?? new ColumnOptions();
124-
125-
IApplyMicrosoftExtensionsConfiguration microsoftExtensionsConfiguration = new ApplyMicrosoftExtensionsConfiguration();
126-
connectionString = microsoftExtensionsConfiguration.GetConnectionString(connectionString, appConfiguration);
127-
columnOptions = microsoftExtensionsConfiguration.ConfigureColumnOptions(columnOptions, columnOptionsSection);
128-
sinkOptions = microsoftExtensionsConfiguration.ConfigureSinkOptions(sinkOptions, sinkOptionsSection);
122+
ReadConfiguration(ref connectionString, ref sinkOptions, appConfiguration, ref columnOptions,
123+
columnOptionsSection, sinkOptionsSection);
129124

130125
IMSSqlServerSinkFactory sinkFactory = new MSSqlServerSinkFactory();
131126
var sink = sinkFactory.Create(connectionString, sinkOptions, formatProvider, columnOptions, logEventFormatter);
@@ -212,18 +207,30 @@ public static LoggerConfiguration MSSqlServer(
212207
if (loggerAuditSinkConfiguration == null)
213208
throw new ArgumentNullException(nameof(loggerAuditSinkConfiguration));
214209

210+
ReadConfiguration(ref connectionString, ref sinkOptions, appConfiguration, ref columnOptions,
211+
columnOptionsSection, sinkOptionsSection);
212+
213+
IMSSqlServerAuditSinkFactory auditSinkFactory = new MSSqlServerAuditSinkFactory();
214+
var auditSink = auditSinkFactory.Create(connectionString, sinkOptions, formatProvider, columnOptions, logEventFormatter);
215+
216+
return loggerAuditSinkConfiguration.Sink(auditSink, restrictedToMinimumLevel);
217+
}
218+
219+
private static void ReadConfiguration(
220+
ref string connectionString,
221+
ref SinkOptions sinkOptions,
222+
IConfiguration appConfiguration,
223+
ref ColumnOptions columnOptions,
224+
IConfigurationSection columnOptionsSection,
225+
IConfigurationSection sinkOptionsSection)
226+
{
215227
sinkOptions = sinkOptions ?? new SinkOptions();
216228
columnOptions = columnOptions ?? new ColumnOptions();
217229

218230
IApplyMicrosoftExtensionsConfiguration microsoftExtensionsConfiguration = new ApplyMicrosoftExtensionsConfiguration();
219231
connectionString = microsoftExtensionsConfiguration.GetConnectionString(connectionString, appConfiguration);
220232
columnOptions = microsoftExtensionsConfiguration.ConfigureColumnOptions(columnOptions, columnOptionsSection);
221233
sinkOptions = microsoftExtensionsConfiguration.ConfigureSinkOptions(sinkOptions, sinkOptionsSection);
222-
223-
IMSSqlServerAuditSinkFactory auditSinkFactory = new MSSqlServerAuditSinkFactory();
224-
var auditSink = auditSinkFactory.Create(connectionString, sinkOptions, formatProvider, columnOptions, logEventFormatter);
225-
226-
return loggerAuditSinkConfiguration.Sink(auditSink, restrictedToMinimumLevel);
227234
}
228235
}
229236
}

src/Serilog.Sinks.MSSqlServer/Configuration/Extensions/System.Configuration/LoggerConfigurationMSSqlServerExtensions.cs

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -133,17 +133,7 @@ internal static LoggerConfiguration MSSqlServerInternal(
133133
if (loggerConfiguration == null)
134134
throw new ArgumentNullException(nameof(loggerConfiguration));
135135

136-
sinkOptions = sinkOptions ?? new SinkOptions();
137-
columnOptions = columnOptions ?? new ColumnOptions();
138-
139-
var serviceConfigSection = applySystemConfiguration.GetSinkConfigurationSection(configSectionName);
140-
if (serviceConfigSection != null)
141-
{
142-
columnOptions = applySystemConfiguration.ConfigureColumnOptions(serviceConfigSection, columnOptions);
143-
sinkOptions = applySystemConfiguration.ConfigureSinkOptions(serviceConfigSection, sinkOptions);
144-
}
145-
146-
connectionString = applySystemConfiguration.GetConnectionString(connectionString);
136+
ReadConfiguration(configSectionName, ref connectionString, ref sinkOptions, ref columnOptions, applySystemConfiguration);
147137

148138
var sink = sinkFactory.Create(connectionString, sinkOptions, formatProvider, columnOptions, logEventFormatter);
149139

@@ -245,8 +235,22 @@ internal static LoggerConfiguration MSSqlServerInternal(
245235
if (loggerAuditSinkConfiguration == null)
246236
throw new ArgumentNullException(nameof(loggerAuditSinkConfiguration));
247237

248-
columnOptions = columnOptions ?? new ColumnOptions();
238+
ReadConfiguration(configSectionName, ref connectionString, ref sinkOptions, ref columnOptions, applySystemConfiguration);
239+
240+
var auditSink = auditSinkFactory.Create(connectionString, sinkOptions, formatProvider, columnOptions, logEventFormatter);
241+
242+
return loggerAuditSinkConfiguration.Sink(auditSink, restrictedToMinimumLevel);
243+
}
244+
245+
private static void ReadConfiguration(
246+
string configSectionName,
247+
ref string connectionString,
248+
ref SinkOptions sinkOptions,
249+
ref ColumnOptions columnOptions,
250+
IApplySystemConfiguration applySystemConfiguration)
251+
{
249252
sinkOptions = sinkOptions ?? new SinkOptions();
253+
columnOptions = columnOptions ?? new ColumnOptions();
250254

251255
var serviceConfigSection = applySystemConfiguration.GetSinkConfigurationSection(configSectionName);
252256
if (serviceConfigSection != null)
@@ -256,10 +260,6 @@ internal static LoggerConfiguration MSSqlServerInternal(
256260
}
257261

258262
connectionString = applySystemConfiguration.GetConnectionString(connectionString);
259-
260-
var auditSink = auditSinkFactory.Create(connectionString, sinkOptions, formatProvider, columnOptions, logEventFormatter);
261-
262-
return loggerAuditSinkConfiguration.Sink(auditSink, restrictedToMinimumLevel);
263263
}
264264
}
265265
}

src/Serilog.Sinks.MSSqlServer/Sinks/MSSqlServer/MSSqlServerAuditSink.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ public MSSqlServerAuditSink(
7373
public MSSqlServerAuditSink(
7474
string connectionString,
7575
SinkOptions sinkOptions,
76-
IFormatProvider formatProvider,
76+
IFormatProvider formatProvider = null,
7777
ColumnOptions columnOptions = null,
7878
ITextFormatter logEventFormatter = null)
7979
{

src/Serilog.Sinks.MSSqlServer/Sinks/MSSqlServer/MSSqlServerSink.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ public MSSqlServerSink(
9494
public MSSqlServerSink(
9595
string connectionString,
9696
SinkOptions sinkOptions,
97-
IFormatProvider formatProvider,
97+
IFormatProvider formatProvider = null,
9898
ColumnOptions columnOptions = null,
9999
ITextFormatter logEventFormatter = null)
100100
: base(sinkOptions?.BatchPostingLimit ?? DefaultBatchPostingLimit, sinkOptions?.BatchPeriod ?? DefaultPeriod)

0 commit comments

Comments
 (0)