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
NuGet 团队不提供对此客户端的支持。请联系其 管理员 以获取支持。
#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
NuGet 团队不提供对此客户端的支持。请联系其 管理员 以获取支持。
Elastic.Serilog.Sinks
A Serilog 接收器,将日志直接写入 Elasticsearch 或 Elastic Cloud
例子
有几种方式可以扩展一个 Serilog
的 LoggerConfiguration
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
没有持久模式。- 如果您需要更高级别的日志投递保证,请使用与我们ECS日志格式化器兼容的
Serilog.Sinks.File
,并使用filebeat将这些日志发送出去。 - 查看Elastic Agent & Fleet,以简化边缘上的日志和指标收集。
- 如果您需要更高级别的日志投递保证,请使用与我们ECS日志格式化器兼容的
如果在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 已计算。 |
-
.NETStandard 2.0
- Elastic.CommonSchema.Serilog (>= 8.11.1)
- Elastic.Ingest.Elasticsearch.CommonSchema (>= 8.11.1)
-
.NETStandard 2.1
- Elastic.CommonSchema.Serilog (>= 8.11.1)
- Elastic.Ingest.Elasticsearch.CommonSchema (>= 8.11.1)
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
|