Skip to content
Branch: master
Find file Copy path
Find file Copy path
5 contributors

Users who have contributed to this file

@mivano @tomap @pierresetteskog @nblumhardt @Liversage
91 lines (66 sloc) 5.19 KB



  • DurableElasticsearchSink is rewritten to use the same base code as the sink for Serilog.Sinks.Seq. Nuget Serilog.Sinks.File is now used instead of deprecated Serilog.Sinks.RollingFile. Lots of new fintuning options for file storage is added in ElasticsearchSinkOptions. Updated Serilog.Sinks.Elasticsearch.Sample.Main with SetupLoggerWithPersistantStorage with all available options for durable mode.
  • Changed datatype on singleEventSizePostingLimit from int to long? with default value null. to make it possible ro reuse code from Sinks.Seq .
  • IndexDecider didnt worked well in buffer mode because of LogEvent was null. Added BufferIndexDecider.
  • Added BufferCleanPayload and an example which makes it possible to cleanup your invalid logging document if rejected from elastic because of inconsistent datatype on a field. It'seasy to miss errors in the self log now its possible to se logrows which is bad for elasticsearch in the elastic log.
  • Added BufferRetainedInvalidPayloadsLimitBytes A soft limit for the number of bytes to use for storing failed requests.
  • Added BufferFileCountLimit The maximum number of log files that will be retained.
  • Formatting has been moved to seperate package.


  • Render message by default (#160).
  • Expose interface-typed options via appsettings (#162)


  • Extra overload added to support more settings via AppSettings reader. (#150)


  • Updated to elasticsearch 6 libraries (#153)
  • Fix field index option for 6.1+ template to use boolean value. (#148)



  • Errors from Elasticsearch can now be handled. Either by looking into the selflog, sending the failty events to another sink, handle the logevent yourself by using a callback or let the sink throw an exception.
  • BOM fix for buffered option.
  • The creation of the template might fail. You can now specify what kind of action should be taken if this happens.
  • Added a sample application.
  • Added a docker-compose file that allows you to start a local elasticsearch and kibana instance.
  • ConnectionTimeout is now set to be 5 seconds instead of 1 minute.
  • You can now set the queueSizeLimit, which limits the amount of events stored in the PeriodicBatching buffer. Does not impact the durable buffer.



  • JSON project file converted to CSProj, references updated. PR #109


  • Next to the number of shards, you can also set the number of replicas. This will only apply to newly created indices.


  • You can specify the number of shards when creating the template mapping. This will only apply to newly created indices.



  • BREAKING CHANGE This sink now uses Serilog 2.0. This is a breaking change, please use a version >=3.x of the sink if you want to use Serilog 1.x.


  • Added an optional ExceptionAsObjectJsonFormatter to support serializing exceptions as a single object (not as an array).


  • SpecificVersion set to False in order not to be dependent on a version of Elasticsearch or Serilog.


  • Dropped support for .NET 4 since the Elasticsearch.NET client also does not support this version of the framework anymore.


  • protected virtual ElasticsearchResponse EmitBatchChecked(IEnumerable events) function now uses a generic type. This allows you to map to either DynamicResponse or to BulkResponse if you want to use NEST.


  • Added exponential backoff strategy when unable to send data to Elasticsearch when using the durable sink option.



  • BREAKING CHANGE This sink now uses the Elasticsearch.Net 2.x library to be compatible with Elasticsearch version 2. This is a breaking change, use a 2.x version of the sink to support Elasticsearch 1.x versions.


  • Fixed typo: ModifyConnectionSetttings to ModifyConnectionSettings.


  • Added an overload so the AppSettings reader can be used to configure the ES sink.


  • Fixes an issue where the index decider was not properly used with pusing events thorugh the ElasticLogShipper.


  • When auto register of the template is enabled, but the ES server is unavailable, the exception is logged to the selflog instead of bubbling up the exception.
  • omit_terms is set to true in the template.


You can’t perform that action at this time.