File tree Expand file tree Collapse file tree 4 files changed +19
-5
lines changed
src/Serilog.Sinks.MSSqlServer/Sinks/MSSqlServer Expand file tree Collapse file tree 4 files changed +19
-5
lines changed Original file line number Diff line number Diff line change @@ -22,7 +22,7 @@ internal static SinkDependencies Create(
22
22
// unless sink option EnlistInTransaction is set to true.
23
23
var sqlConnectionStringBuilderWrapper = new SqlConnectionStringBuilderWrapper (
24
24
connectionString , sinkOptions . EnlistInTransaction ) ;
25
- var sqlConnectionFactory = new SqlConnectionFactory ( sqlConnectionStringBuilderWrapper ) ;
25
+ var sqlConnectionFactory = new SqlConnectionFactory ( sqlConnectionStringBuilderWrapper , sinkOptions . ConnectionConfiguration ) ;
26
26
var sqlCommandFactory = new SqlCommandFactory ( ) ;
27
27
var dataTableCreator = new DataTableCreator ( sinkOptions . TableName , columnOptions ) ;
28
28
var sqlCreateTableWriter = new SqlCreateTableWriter ( sinkOptions . SchemaName ,
@@ -34,7 +34,7 @@ internal static SinkDependencies Create(
34
34
InitialCatalog = ""
35
35
} ;
36
36
var sqlConnectionFactoryNoDb =
37
- new SqlConnectionFactory ( sqlConnectionStringBuilderWrapperNoDb ) ;
37
+ new SqlConnectionFactory ( sqlConnectionStringBuilderWrapperNoDb , sinkOptions . ConnectionConfiguration ) ;
38
38
var sqlCreateDatabaseWriter = new SqlCreateDatabaseWriter ( sqlConnectionStringBuilderWrapper . InitialCatalog ) ;
39
39
40
40
var logEventDataGenerator =
Original file line number Diff line number Diff line change 1
1
using System ;
2
+ using Microsoft . Data . SqlClient ;
2
3
using Serilog . Core ;
3
4
4
5
namespace Serilog . Sinks . MSSqlServer
@@ -83,5 +84,10 @@ internal MSSqlServerSinkOptions(
83
84
/// Flag to use <see cref="Microsoft.Data.SqlClient.SqlBulkCopy"/> instead of individual INSERT statements (default: true)
84
85
/// </summary>
85
86
public bool UseSqlBulkCopy { get ; set ; }
87
+
88
+ /// <summary>
89
+ /// Supplies an extension point for customizing the underyling SqlConnection
90
+ /// </summary>
91
+ public Action < SqlConnection > ConnectionConfiguration { get ; set ; }
86
92
}
87
93
}
Original file line number Diff line number Diff line change @@ -9,9 +9,13 @@ internal class SqlConnectionWrapper : ISqlConnectionWrapper
9
9
private readonly SqlConnection _sqlConnection ;
10
10
private bool _disposedValue ;
11
11
12
- public SqlConnectionWrapper ( string connectionString )
12
+ public SqlConnectionWrapper ( string connectionString , Action < SqlConnection > connectionConfiguration = null )
13
13
{
14
14
_sqlConnection = new SqlConnection ( connectionString ) ;
15
+ if ( connectionConfiguration != null )
16
+ {
17
+ connectionConfiguration ( _sqlConnection ) ;
18
+ }
15
19
}
16
20
17
21
public SqlConnection SqlConnection => _sqlConnection ;
Original file line number Diff line number Diff line change 1
1
using System ;
2
+ using Microsoft . Data . SqlClient ;
2
3
using Serilog . Sinks . MSSqlServer . Platform . SqlClient ;
3
4
4
5
namespace Serilog . Sinks . MSSqlServer . Platform
@@ -7,18 +8,21 @@ internal class SqlConnectionFactory : ISqlConnectionFactory
7
8
{
8
9
private readonly string _connectionString ;
9
10
private readonly ISqlConnectionStringBuilderWrapper _sqlConnectionStringBuilderWrapper ;
11
+ private readonly Action < SqlConnection > _connectionConfiguration ;
10
12
11
- public SqlConnectionFactory ( ISqlConnectionStringBuilderWrapper sqlConnectionStringBuilderWrapper )
13
+ public SqlConnectionFactory ( ISqlConnectionStringBuilderWrapper sqlConnectionStringBuilderWrapper ,
14
+ Action < SqlConnection > connectionConfiguration = null )
12
15
{
13
16
_sqlConnectionStringBuilderWrapper = sqlConnectionStringBuilderWrapper
14
17
?? throw new ArgumentNullException ( nameof ( sqlConnectionStringBuilderWrapper ) ) ;
15
18
16
19
_connectionString = _sqlConnectionStringBuilderWrapper . ConnectionString ;
20
+ _connectionConfiguration = connectionConfiguration ;
17
21
}
18
22
19
23
public ISqlConnectionWrapper Create ( )
20
24
{
21
- return new SqlConnectionWrapper ( _connectionString ) ;
25
+ return new SqlConnectionWrapper ( _connectionString , _connectionConfiguration ) ;
22
26
}
23
27
}
24
28
}
You can’t perform that action at this time.
0 commit comments