Honeycomb.Serilog.Sink
2.2.0
dotnet add package Honeycomb.Serilog.Sink --version 2.2.0
NuGet\Install-Package Honeycomb.Serilog.Sink -Version 2.2.0
<PackageReference Include="Honeycomb.Serilog.Sink" Version="2.2.0" />
paket add Honeycomb.Serilog.Sink --version 2.2.0
#r "nuget: Honeycomb.Serilog.Sink, 2.2.0"
// Install Honeycomb.Serilog.Sink as a Cake Addin #addin nuget:?package=Honeycomb.Serilog.Sink&version=2.2.0 // Install Honeycomb.Serilog.Sink as a Cake Tool #tool nuget:?package=Honeycomb.Serilog.Sink&version=2.2.0
Honeycomb Serilog sink
[]
This project aims to provide a Serilog sink to push structured log events to the Honeycomb platform for observability and monitoring purposes.
By hooking up to serilog the goal is to allow all existing applications which already produce structured events for logging to easily include Honeycomb as part of their pipeline.
This library will add an enricher that adds information about the ongoing Activity/Span.The moment the log message's created.
This adds a trace.trace_id
property that matches the activities TraceId
and a trace.parent_id
property which matches the SpanId
of the activity to each log event.
Every event will be tagged with meta.annotation_type=span_event
in Honeycomb and you'll be able to see them when reviewing a trace.
Setup
To start using this sink simply download the package from Nuget and add it to your Serilog configuration as another sink in the pipeline.
Parameters
Mandatory
- dataset: The name of the dataset to send the log messages to.
- api key: An API key with
Send Events
permissions on the dataset.
Optional
- httpClientFactory: a factory which will provide an instance of HttpClient. When passed it's the responsability of the caller to manage the lifecycle of the client.
- honeycombUrl: the url to the honeycomb Events API, change it if you want to test or if using Refinery. It defaults to https://api.honeycomb.io
- Batching Option:
- batchSizeLimit: The maximum number of log events to send in a batch. Defaults to 1000.
- period: The maximum amount of time before flushing the events. Defaults to 2 seconds. If you see issues with memory utilization troubleshoot the batching options, too big a batch size limmit might result in a lot of memory being used, too low numbers may result in too frequent calls to the API.
Download the package
dotnet add package Honeycomb.Serilog.Sink
Example
using Honeycomb.Serilog.Sink;
namespace Example
{
public static class Program
{
public static int Main(string[] args)
{
Activity.DefaultIdFormat = ActivityIdFormat.W3C;
Activity.ForceDefaultIdFormat = true;
Log.Logger = new LoggerConfiguration()
.WriteTo.HoneycombSink(
teamId: dataset,
apiKey: apiKey)
.BuildLogger();
// Do stuff
}
}
}
Using service provider
namespace Example
{
public static class Program
{
public static int Main(string[] args)
{
Log.Logger = new LoggerConfiguration()
.MinimumLevel.Override("Microsoft", LogEventLevel.Information)
.Enrich.FromLogContext()
.WriteTo.Console()
.CreateBootstrapLogger();
try
{
Log.Information("Starting web host");
CreateHostBuilder(args).Build().Run();
return 0;
}
catch (Exception ex)
{
Log.Fatal(ex, "Host terminated unexpectedly");
return 1;
}
finally
{
Log.CloseAndFlush();
}
}
public static IHostBuilder CreateWebHostBuilder(string[] args)
{
return Host.CreateDefaultBuilder(args)
.UseSerilog((_, services, configuration) =>
{
configuration.WriteTo.HoneycombSink(
teamId: <Dataset>,
apiKey: <Api Key>,
httpClientFactory: () =>
services.GetRequiredService<IHttpClientFactory>()
.CreateClient("honeycomb"));
});
}
}
}
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 is compatible. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- Serilog (>= 3.0.1)
- Serilog.Sinks.PeriodicBatching (>= 3.1.0)
- System.Diagnostics.DiagnosticSource (>= 7.0.2)
-
net6.0
- Serilog (>= 3.0.1)
- Serilog.Sinks.PeriodicBatching (>= 3.1.0)
- System.Diagnostics.DiagnosticSource (>= 7.0.2)
-
net7.0
- Serilog (>= 3.0.1)
- Serilog.Sinks.PeriodicBatching (>= 3.1.0)
- System.Diagnostics.DiagnosticSource (>= 7.0.2)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
2.2.0 | 21,119 | 8/29/2023 |
2.1.0 | 6,830 | 3/30/2023 |
2.0.1 | 46,472 | 3/15/2021 |
2.0.0 | 334 | 3/13/2021 |
1.2.1 | 4,121 | 1/31/2021 |
1.1.0 | 4,191 | 3/9/2020 |
1.0.0 | 548 | 2/20/2020 |
1.0.0-beta.2 | 361 | 2/10/2020 |
1.0.0-beta.1 | 269 | 2/4/2020 |
0.7.0-beta.1 | 323 | 1/10/2020 |
0.6.0 | 509 | 12/14/2019 |
0.5.5 | 499 | 12/10/2019 |