Elastic.Serilog.Sinks 8.11.1

ID 前缀已保留
dotnet add package Elastic.Serilog.Sinks --version 8.11.1                
NuGet\Install-Package Elastic.Serilog.Sinks -Version 8.11.1                
此命令旨在在 Visual Studio 的包管理器控制台中使用,因为它使用 NuGet 模块的 Install-Package 版本。
<PackageReference Include="Elastic.Serilog.Sinks" Version="8.11.1" />                
对于支持 PackageReference 的项目,将此 XML 节点复制到项目文件中,以引用该软件包。
paket add Elastic.Serilog.Sinks --version 8.11.1                
#r "nuget: Elastic.Serilog.Sinks, 8.11.1"                
#r 指令可用于 F# Interactive 和多语言笔记本。将其复制到交互式工具或脚本源代码中,以引用该软件包。
// Install Elastic.Serilog.Sinks as a Cake Addin
#addin nuget:?package=Elastic.Serilog.Sinks&version=8.11.1

// Install Elastic.Serilog.Sinks as a Cake Tool
#tool nuget:?package=Elastic.Serilog.Sinks&version=8.11.1                

Elastic.Serilog.Sinks

A Serilog 接收器,将日志直接写入 ElasticsearchElastic Cloud

例子

有几种方式可以扩展一个 SerilogLoggerConfiguration

Log.Logger = new LoggerConfiguration()
	.MinimumLevel.Debug()
	.Enrich.FromLogContext()

注意:不要忘了我们还发布了一个用于 Elastic APM Agent 的 Elastic.Apm.SerilogEnricher

写入到 Elasticsearch

.WriteTo.Elasticsearch(new [] { new Uri("https://127.0.0.1:9200" )}, opts =>
{
	opts.DataStream = new DataStreamName("logs", "console-example", "demo");
	opts.BootstrapMethod = BootstrapMethod.Failure;
	opts.ConfigureChannel = channelOpts =>
	{
		channelOpts.BufferOptions = new BufferOptions 
		{ 
			ConcurrentConsumers = 10 
		};
	};
})

写入到 Elastic Cloud

.WriteTo.ElasticCloud("cloudId", "cloudUser", "cloudPass", opts =>

opts 是一个包含以下选项的 ElasticsearchSinkOptions 实例

选项 描述
传输 一个 Elastic.Transport 实例,它决定了我们通信的位置和方式。默认为 https://127.0.0.1:9200
数据流 写入数据的位置,默认为 logs-dotnet-default 数据流。
BootstrapMethod 是否尝试安装组件和索引模板以确保数据流有ECS映射。可以是以下之一:None(默认值),Silent(尝试但不报告错误),Failure(尝试失败时抛出异常)。
TextFormatting 允许显式控制用于生成ECS json文档的EcsTextFormatterConfiguration。有关可用选项,请参阅Elastic.CommonSchema.Serilog
ConfigureChannel 接收DatastreamChannelOptions的回调,允许您控制大小、背压等。有关更多信息,请参阅Elastic.Ingest.Elasticsearch

请注意,您还可以直接传递ElasticsearchSinkOptions

.WriteTo.Elasticsearch(new ElasticsearchSinkOptions(client.Transport)

这允许您复用Elasticsearch客户端使用的Transport

ECS感知消息模板

通过其格式化器作为代理,这个数据流允许您使用符合https://messagetemplates.org/格式的属性直接从消息模板中设置ECS字段。

可用的ECS消息模板属性列在LogTemplateProperties.*下,例如LogTemplateProperties.TraceId

Log.Information("The time is {TraceId}", "my-trace-id");

将覆盖结果ECS json文档上的trace.id

Serilog.Sinks.Elasticsearch比较

  • Serilog.Sinks.Elasticsearch是由社区主导的一个令人惊叹的输出,具有大量的选项且适用于旧的Elasticsearch版本< 8.0
  • Serilog.Sinks.Elasticsearch由Elastic非正式支持,其中.NET团队也帮助维护。
  • Elastic.Serilog.Sinks由Elastic官方支持,并特意构建以符合关于日志记录、数据流和ILM的最新最佳实践。
  • Elastic.Serilog.Sinks特意构建为具有比Serilog.Sinks.Elasticsearch更少的配置选项,并更具体。
    • 这并不意味着Elastic.Serilog.Sinks中没有许多配置钩子
值得注意的是功能缺失
  • Elastic.Serilog.Sinks仅与Elasticsearch 8.x和更高版本一起工作。
    • 这是因为引导进程(BootstrapMethod)试图加载为Elasticsearch 8.0和更高版本构建的模板。
  • Elastic.Serilog.Sinks以符合ecs-logging规范的一种方式向Elasticsearch发射数据。
    • 这并不意味着你不能引入自己的额外属性。
  • Elastic.Serilog.Sinks没有持久模式。

如果在Elastic.Serilog.Sinks中发现Serilog.Sinks.Elasticsearch中缺乏的特定功能,请打开功能请求!我们渴望在未来自然地扩展此数据输出。

产品 兼容的及附加计算的目标框架版本。
.NET net5.0 已计算。 net5.0-windows 已计算。 net6.0 已计算。 net6.0-android 已计算。 net6.0-ios 已计算。 net6.0-maccatalyst 已计算。 net6.0-macos 已计算。 net6.0-tvos 已计算。 net6.0-windows 已计算。 net7.0 已计算。 net7.0-android 已计算。 net7.0-ios 已计算。 net7.0-maccatalyst 已计算。 net7.0-macos 已计算。 net7.0-tvos 已计算。 net7.0-windows 已计算。 net8.0 已计算。 net8.0-android 已计算。 net8.0-browser 已计算。 net8.0-ios 已计算。 net8.0-maccatalyst 已计算。 net8.0-macos 已计算。 net8.0-tvos 已计算。 net8.0-windows 已计算。
.NET Core netcoreapp2.0 已计算。 netcoreapp2.1 已计算。 netcoreapp2.2 已计算。 netcoreapp3.0 已计算。 netcoreapp3.1 已计算。
.NET Standard netstandard2.0 兼容。 netstandard2.1 兼容。
.NET Framework net461 已计算。 net462 已计算。 net463 已计算。 net47 已计算。 net471 已计算。 net472 已计算。 net48 已计算。 net481 已计算。
MonoAndroid monoandroid 已计算。
MonoMac monomac 已计算。
MonoTouch monotouch 已计算。
Tizen tizen40 已计算。 tizen60 已计算。
Xamarin.iOS xamarinios 已计算。
Xamarin.Mac xamarinmac 已计算。
Xamarin.TVOS xamarintvos 已计算。
Xamarin.WatchOS xamarinwatchos 已计算。
兼容的目标框架
包含的目标框架(在包中)
了解更多关于 目标框架.NET Standard 的信息。

NuGet 包 (8)

显示依赖 Elastic.Serilog.Sinks 的 top 5 NuGet 包

下载
Garcia.Infrastructure.Logging.Serilog.ElasticSearch

包描述

amorphie.core

amorphie.core

Delfin.Core.Infrastructure

包描述

cgvak.common.common

包描述

RetailSolutions.Shared.Microservices

包描述

GitHub 仓库 (1)

显示依赖 Elastic.Serilog.Sinks 的 top 1 个热门 GitHub 仓库

仓库 星标
BehzadDara/SampleProject
版本 下载 最后更新
8.11.1 67,356 6/10/2024
8.11.0 61,384 4/10/2024
8.6.1 401,688 8/3/2023
8.6.0 72,379 5/9/2023