Skip to content
This repository was archived by the owner on Jun 1, 2024. It is now read-only.

Commit a30be1a

Browse files
author
vladz
committed
added new Elasticsearch method and marked old as Obsolete
1 parent bc504f4 commit a30be1a

File tree

1 file changed

+64
-1
lines changed

1 file changed

+64
-1
lines changed

src/Serilog.Sinks.Elasticsearch/LoggerConfigurationElasticSearchExtensions.cs

Lines changed: 64 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
using Serilog.Events;
2222
using Serilog.Sinks.Elasticsearch;
2323
using System.Collections.Specialized;
24+
using System.ComponentModel;
2425

2526
namespace Serilog
2627
{
@@ -62,6 +63,45 @@ public static LoggerConfiguration Elasticsearch(
6263
);
6364
}
6465

66+
/// <summary>
67+
/// Overload to allow basic configuration through AppSettings.
68+
/// </summary>
69+
/// <param name="loggerSinkConfiguration">Options for the sink.</param>
70+
/// <param name="nodeUris">A comma or semi column separated list of URIs for Elasticsearch nodes.</param>
71+
/// <param name="indexFormat"><see cref="ElasticsearchSinkOptions.IndexFormat"/></param>
72+
/// <param name="templateName"><see cref="ElasticsearchSinkOptions.TemplateName"/></param>
73+
/// <param name="typeName"><see cref="ElasticsearchSinkOptions.TypeName"/></param>
74+
/// <param name="batchPostingLimit"><see cref="ElasticsearchSinkOptions.BatchPostingLimit"/></param>
75+
/// <param name="period"><see cref="ElasticsearchSinkOptions.Period"/></param>
76+
/// <param name="inlineFields"><see cref="ElasticsearchSinkOptions.InlineFields"/></param>
77+
/// <param name="restrictedToMinimumLevel">The minimum log event level required in order to write an event to the sink. Ignored when <paramref name="levelSwitch"/> is specified.</param>
78+
/// <param name="levelSwitch">A switch allowing the pass-through minimum level to be changed at runtime.</param>
79+
/// <param name="bufferBaseFilename"><see cref="ElasticsearchSinkOptions.BufferBaseFilename"/></param>
80+
/// <param name="bufferFileSizeLimitBytes"><see cref="ElasticsearchSinkOptions.BufferFileSizeLimitBytes"/></param>
81+
/// <param name="bufferLogShippingInterval"><see cref="ElasticsearchSinkOptions.BufferLogShippingInterval"/></param>
82+
/// <param name="connectionGlobalHeaders">A comma or semi column separated list of key value pairs of headers to be added to each elastic http request</param>
83+
[Obsolete("New code should not be compiled against this obsolete overload"), EditorBrowsable(EditorBrowsableState.Never)]
84+
public static LoggerConfiguration Elasticsearch(
85+
this LoggerSinkConfiguration loggerSinkConfiguration,
86+
string nodeUris,
87+
string indexFormat,
88+
string templateName,
89+
string typeName,
90+
int batchPostingLimit,
91+
int period,
92+
bool inlineFields,
93+
LogEventLevel restrictedToMinimumLevel,
94+
string bufferBaseFilename,
95+
long? bufferFileSizeLimitBytes,
96+
long bufferLogShippingInterval,
97+
string connectionGlobalHeaders,
98+
LoggingLevelSwitch levelSwitch)
99+
{
100+
return Elasticsearch(loggerSinkConfiguration, nodeUris, indexFormat, templateName, typeName, batchPostingLimit, period, inlineFields, restrictedToMinimumLevel, bufferBaseFilename,
101+
bufferFileSizeLimitBytes, bufferLogShippingInterval, connectionGlobalHeaders, levelSwitch, 5, EmitEventFailureHandling.WriteToSelfLog, 100000, null, false,
102+
AutoRegisterTemplateVersion.ESv2, false, RegisterTemplateRecovery.IndexAnyway, null, null, null);
103+
}
104+
65105
/// <summary>
66106
/// Overload to allow basic configuration through AppSettings.
67107
/// </summary>
@@ -79,9 +119,15 @@ public static LoggerConfiguration Elasticsearch(
79119
/// <param name="bufferFileSizeLimitBytes"><see cref="ElasticsearchSinkOptions.BufferFileSizeLimitBytes"/></param>
80120
/// <param name="bufferLogShippingInterval"><see cref="ElasticsearchSinkOptions.BufferLogShippingInterval"/></param>
81121
/// <param name="connectionGlobalHeaders">A comma or semi column separated list of key value pairs of headers to be added to each elastic http request</param>
122+
/// <param name="connectionTimeout"><see cref="ElasticsearchSinkOptions.ConnectionTimeout"/></param>
123+
/// <param name="emitEventFailure"><see cref="ElasticsearchSinkOptions.EmitEventFailure"/></param>
124+
/// <param name="queueSizeLimit"><see cref="ElasticsearchSinkOptions.QueueSizeLimit"/></param>
125+
/// <param name="pipelineName"><see cref="ElasticsearchSinkOptions.PipelineName"/></param>
82126
/// <param name="autoRegisterTemplate"><see cref="ElasticsearchSinkOptions.AutoRegisterTemplate"/></param>
83-
/// <param name="autoRegisterTemplateVersion"><see cref="ElasticsearchSinkOptions.AutoRegisterTemplateVersion"/></param>
127+
/// <param name="autoRegisterTemplateVersion"><see cref="ElasticsearchSinkOptions.AutoRegisterTemplateVersion"/></param>
84128
/// <param name="overwriteTemplate"><see cref="ElasticsearchSinkOptions.OverwriteTemplate"/></param>
129+
/// <param name="registerTemplateFailure"><see cref="ElasticsearchSinkOptions.RegisterTemplateFailure"/></param>
130+
/// <param name="deadLetterIndexName"><see cref="ElasticsearchSinkOptions.DeadLetterIndexName"/></param>
85131
/// <param name="numberOfShards"><see cref="ElasticsearchSinkOptions.NumberOfShards"/></param>
86132
/// <param name="numberOfReplicas"><see cref="ElasticsearchSinkOptions.NumberOfReplicas"/></param>
87133
/// <returns>LoggerConfiguration object</returns>
@@ -101,9 +147,15 @@ public static LoggerConfiguration Elasticsearch(
101147
long bufferLogShippingInterval = 5000,
102148
string connectionGlobalHeaders = null,
103149
LoggingLevelSwitch levelSwitch = null,
150+
int connectionTimeout = 5,
151+
EmitEventFailureHandling emitEventFailure = EmitEventFailureHandling.WriteToSelfLog,
152+
int queueSizeLimit = 100000,
153+
string pipelineName = null,
104154
bool autoRegisterTemplate = false,
105155
AutoRegisterTemplateVersion autoRegisterTemplateVersion = AutoRegisterTemplateVersion.ESv2,
106156
bool overwriteTemplate = false,
157+
RegisterTemplateRecovery registerTemplateFailure = RegisterTemplateRecovery.IndexAnyway,
158+
string deadLetterIndexName = null,
107159
int? numberOfShards = null,
108160
int? numberOfReplicas = null)
109161
{
@@ -166,12 +218,23 @@ public static LoggerConfiguration Elasticsearch(
166218
options.ModifyConnectionSettings = (c) => c.GlobalHeaders(headers);
167219
}
168220

221+
options.ConnectionTimeout = TimeSpan.FromSeconds(connectionTimeout);
222+
options.EmitEventFailure = emitEventFailure;
223+
options.QueueSizeLimit = queueSizeLimit;
224+
options.PipelineName = pipelineName;
225+
169226
options.AutoRegisterTemplate = autoRegisterTemplate;
170227
options.AutoRegisterTemplateVersion = autoRegisterTemplateVersion;
228+
options.RegisterTemplateFailure = registerTemplateFailure;
171229
options.OverwriteTemplate = overwriteTemplate;
172230
options.NumberOfShards = numberOfShards;
173231
options.NumberOfReplicas = numberOfReplicas;
174232

233+
if (!string.IsNullOrWhiteSpace(deadLetterIndexName))
234+
{
235+
options.DeadLetterIndexName = deadLetterIndexName;
236+
}
237+
175238
return Elasticsearch(loggerSinkConfiguration, options);
176239
}
177240
}

0 commit comments

Comments
 (0)