11using System ;
22using System . Collections . Generic ;
3+ using Elastic . Transport ;
34using Serilog ;
45using Serilog . Configuration ;
56
@@ -35,10 +36,13 @@ public static LoggerConfiguration Elasticsearch(
3536 this LoggerSinkConfiguration loggerConfiguration ,
3637 ICollection < Uri > nodes ,
3738 Action < ElasticsearchSinkOptions > ? configureOptions = null ,
39+ Action < TransportConfiguration > ? configureTransport = null ,
3840 bool useSniffing = true
3941 )
4042 {
41- var sinkOptions = new ElasticsearchSinkOptions ( useSniffing ? TransportHelper . Static ( nodes ) : TransportHelper . Sniffing ( nodes ) ) ;
43+ var transportConfig = useSniffing ? TransportHelper . Static ( nodes ) : TransportHelper . Sniffing ( nodes ) ;
44+ configureTransport ? . Invoke ( transportConfig ) ;
45+ var sinkOptions = new ElasticsearchSinkOptions ( new DefaultHttpTransport ( transportConfig ) ) ;
4246 configureOptions ? . Invoke ( sinkOptions ) ;
4347
4448 return loggerConfiguration . Sink ( new ElasticsearchSink ( sinkOptions ) ) ;
@@ -54,10 +58,13 @@ public static LoggerConfiguration Elasticsearch<TEcsDocument>(
5458 this LoggerSinkConfiguration loggerConfiguration ,
5559 ICollection < Uri > nodes ,
5660 Action < ElasticsearchSinkOptions < TEcsDocument > > ? configureOptions = null ,
61+ Action < TransportConfiguration > ? configureTransport = null ,
5762 bool useSniffing = true
5863 ) where TEcsDocument : EcsDocument , new ( )
5964 {
60- var sinkOptions = new ElasticsearchSinkOptions < TEcsDocument > ( useSniffing ? TransportHelper . Static ( nodes ) : TransportHelper . Sniffing ( nodes ) ) ;
65+ var transportConfig = useSniffing ? TransportHelper . Static ( nodes ) : TransportHelper . Sniffing ( nodes ) ;
66+ configureTransport ? . Invoke ( transportConfig ) ;
67+ var sinkOptions = new ElasticsearchSinkOptions < TEcsDocument > ( new DefaultHttpTransport ( transportConfig ) ) ;
6168 configureOptions ? . Invoke ( sinkOptions ) ;
6269
6370 return loggerConfiguration . Sink ( new ElasticsearchSink < TEcsDocument > ( sinkOptions ) ) ;
@@ -73,10 +80,13 @@ public static LoggerConfiguration ElasticCloud(
7380 this LoggerSinkConfiguration loggerConfiguration ,
7481 string cloudId ,
7582 string apiKey ,
76- Action < ElasticsearchSinkOptions > ? configureOptions = null
83+ Action < ElasticsearchSinkOptions > ? configureOptions = null ,
84+ Action < TransportConfiguration > ? configureTransport = null
7785 )
7886 {
79- var sinkOptions = new ElasticsearchSinkOptions ( TransportHelper . Cloud ( cloudId , apiKey ) ) ;
87+ var transportConfig = TransportHelper . Cloud ( cloudId , apiKey ) ;
88+ configureTransport ? . Invoke ( transportConfig ) ;
89+ var sinkOptions = new ElasticsearchSinkOptions ( new DefaultHttpTransport ( transportConfig ) ) ;
8090 configureOptions ? . Invoke ( sinkOptions ) ;
8191
8292 return loggerConfiguration . Sink ( new ElasticsearchSink ( sinkOptions ) ) ;
@@ -93,10 +103,13 @@ public static LoggerConfiguration ElasticCloud<TEcsDocument>(
93103 this LoggerSinkConfiguration loggerConfiguration ,
94104 string cloudId ,
95105 string apiKey ,
96- Action < ElasticsearchSinkOptions < TEcsDocument > > ? configureOptions = null
106+ Action < ElasticsearchSinkOptions < TEcsDocument > > ? configureOptions = null ,
107+ Action < TransportConfiguration > ? configureTransport = null
97108 ) where TEcsDocument : EcsDocument , new ( )
98109 {
99- var sinkOptions = new ElasticsearchSinkOptions < TEcsDocument > ( TransportHelper . Cloud ( cloudId , apiKey ) ) ;
110+ var transportConfig = TransportHelper . Cloud ( cloudId , apiKey ) ;
111+ configureTransport ? . Invoke ( transportConfig ) ;
112+ var sinkOptions = new ElasticsearchSinkOptions < TEcsDocument > ( new DefaultHttpTransport ( transportConfig ) ) ;
100113 configureOptions ? . Invoke ( sinkOptions ) ;
101114
102115 return loggerConfiguration . Sink ( new ElasticsearchSink < TEcsDocument > ( sinkOptions ) ) ;
@@ -113,10 +126,13 @@ public static LoggerConfiguration ElasticCloud(
113126 string cloudId ,
114127 string username ,
115128 string password ,
116- Action < ElasticsearchSinkOptions > ? configureOptions = null
129+ Action < ElasticsearchSinkOptions > ? configureOptions = null ,
130+ Action < TransportConfiguration > ? configureTransport = null
117131 )
118132 {
119- var sinkOptions = new ElasticsearchSinkOptions ( TransportHelper . Cloud ( cloudId , username , password ) ) ;
133+ var transportConfig = TransportHelper . Cloud ( cloudId , username , password ) ;
134+ configureTransport ? . Invoke ( transportConfig ) ;
135+ var sinkOptions = new ElasticsearchSinkOptions ( new DefaultHttpTransport ( transportConfig ) ) ;
120136 configureOptions ? . Invoke ( sinkOptions ) ;
121137
122138 return loggerConfiguration . Sink ( new ElasticsearchSink ( sinkOptions ) ) ;
@@ -134,10 +150,13 @@ public static LoggerConfiguration ElasticCloud<TEcsDocument>(
134150 string cloudId ,
135151 string username ,
136152 string password ,
137- Action < ElasticsearchSinkOptions < TEcsDocument > > ? configureOptions = null
153+ Action < ElasticsearchSinkOptions < TEcsDocument > > ? configureOptions = null ,
154+ Action < TransportConfiguration > ? configureTransport = null
138155 ) where TEcsDocument : EcsDocument , new ( )
139156 {
140- var sinkOptions = new ElasticsearchSinkOptions < TEcsDocument > ( TransportHelper . Cloud ( cloudId , username , password ) ) ;
157+ var transportConfig = TransportHelper . Cloud ( cloudId , username , password ) ;
158+ configureTransport ? . Invoke ( transportConfig ) ;
159+ var sinkOptions = new ElasticsearchSinkOptions < TEcsDocument > ( new DefaultHttpTransport ( transportConfig ) ) ;
141160 configureOptions ? . Invoke ( sinkOptions ) ;
142161
143162 return loggerConfiguration . Sink ( new ElasticsearchSink < TEcsDocument > ( sinkOptions ) ) ;
0 commit comments