实例介绍
Serilog是一个流行的.NET日志框架,能够以结构化的方式记录日志信息。Serilog.Sinks.Elasticsearch是Serilog的一个扩展接收器,它允许开发者将日志数据发送到Elasticsearch,这是一个基于NoSQL的搜索引擎,非常适合于存储、搜索和分析大量日志数据。
特性:
- 简单的配置即可将日志事件发布到Elasticsearch,只需服务器地址。
- 所有属性都存储在Elasticsearch的字段中,这使得您可以查询所有相关数据并对这些数据进行分析。
- 可以自定义存储;指定正在使用的索引名称、序列化器或服务器的连接(负载均衡)。
- 持久化模式;首先将logevents存储在磁盘上,然后再将它们交付给ES,确保如果连接到ES集群时遇到问题,也不会丢失事件。
- 自动为ES中的日志事件创建正确的映射,或自动上传您自己的自定义映射。
快速开始:
var loggerConfig = new LoggerConfiguration() .WriteTo.Elasticsearch(new ElasticsearchSinkOptions(new Uri("http://localhost:9200")));此配置将检测Elasticsearch服务器版本(默认情况下DetectElasticsearchVersion设置为true),并根据服务器版本(6.x、7.x或8.x)正确处理TypeName行为。
【实例截图】
【核心代码】
文件清单
└── serilog-sinks-elasticsearch-22fbaf9305977b473dd0689610e495d13999580e
├── assets
│ ├── CommonAssemblyInfo.cs
│ ├── serilog-sink-nuget.png
│ └── Serilog.snk
├── CHANGES.md
├── docker-compose.readme.txt
├── docker-compose.yml
├── GitVersion.yml
├── LICENSE
├── nuget.config
├── README.md
├── sample
│ └── Serilog.Sinks.Elasticsearch.Sample
│ ├── appsettings.json
│ ├── Program.cs
│ └── Serilog.Sinks.Elasticsearch.Sample.csproj
├── serilog-sinks-elasticsearch.sln
├── serilog-sinks-elasticsearch.sln.DotSettings
├── serilog-sinks-elasticsearch.sln.iml
├── src
│ ├── Serilog.Formatting.Elasticsearch
│ │ ├── DefaultJsonFormatter.cs
│ │ ├── ElasticsearchJsonFormatter.cs
│ │ ├── ExceptionAsObjectJsonFormatter.cs
│ │ ├── ISerializer.cs
│ │ └── Serilog.Formatting.Elasticsearch.csproj
│ └── Serilog.Sinks.Elasticsearch
│ ├── LoggerConfigurationElasticSearchExtensions.cs
│ ├── Serilog.Sinks.Elasticsearch.csproj
│ └── Sinks
│ └── ElasticSearch
│ ├── Durable
│ │ ├── APayloadReader.cs
│ │ ├── BookmarkFile.cs
│ │ ├── ControlledLevelSwitch.cs
│ │ ├── Elasticsearch
│ │ │ ├── DurableElasticsearchSink.cs
│ │ │ ├── ElasticsearchLogClient.cs
│ │ │ ├── ElasticsearchLogShipper.cs
│ │ │ ├── ElasticsearchPayloadReader.cs
│ │ │ └── RollingIntervalExtensions.cs
│ │ ├── ExponentialBackoffConnectionSchedule.cs
│ │ ├── FileSet.cs
│ │ ├── FileSetPosition.cs
│ │ ├── ILogClient.cs
│ │ ├── IPayloadReader.cs
│ │ ├── LogShipper.cs
│ │ └── PortableTimer.cs
│ ├── ElasticSearchSink.cs
│ ├── ElasticsearchSinkOptions.cs
│ ├── ElasticsearchSinkState.cs
│ ├── ElasticSearchTemplateProvider.cs
│ ├── ElasticsearchVersionManager.cs
│ └── SerializerAdapter.cs
└── test
├── Serilog.Sinks.Elasticsearch.IntegrationTests
│ ├── Bootstrap
│ │ ├── ClientTestClusterBase.cs
│ │ ├── ElasticsearchSinkOptionsFactory.cs
│ │ ├── ProxyDetection.cs
│ │ ├── SerilogSinkElasticsearchXunitRunOptions.cs
│ │ └── XunitBootstrap.cs
│ ├── Elasticsearch6
│ │ ├── Bootstrap
│ │ │ ├── Elasticsearch6XCluster.cs
│ │ │ └── Elasticsearch6XTestBase.cs
│ │ ├── Elasticsearch6X.cs
│ │ └── Elasticsearch6XUsing7X.cs
│ ├── Elasticsearch7
│ │ ├── Bootstrap
│ │ │ ├── Elasticsearch7XCluster.cs
│ │ │ └── Elasticsearch7XTestBase.cs
│ │ ├── Elasticsearch7X.cs
│ │ └── Elasticsearch7XUsing6X.cs
│ └── Serilog.Sinks.Elasticsearch.IntegrationTests.csproj
└── Serilog.Sinks.Elasticsearch.Tests
├── BulkActionTests.cs
├── CustomIndexTypeNameTests.cs
├── Discrepancies
│ ├── ElasticsearchDefaultSerializerTests.cs
│ ├── ElasticsearchSinkUniformityTestsBase.cs
│ ├── JsonNetSerializerTests.cs
│ └── NoSerializerTests.cs
├── Domain
│ └── BulkAction.cs
├── ElasticsearchJsonFormatterTests.cs
├── ElasticSearchLogShipperTests.cs
├── ElasticsearchPayloadReaderTests.cs
├── ElasticsearchSinkTests.cs
├── ExceptionAsJsonObjectFormatterTests.cs
├── FileSetTests.cs
├── IndexDeciderTests.cs
├── InlineFieldsTests.cs
├── Properties
│ └── AssemblyInfo.cs
├── PropertyNameTests.cs
├── RealExceptionNoSerializerTests.cs
├── RealExceptionTests.cs
├── Serilog.Sinks.Elasticsearch.Tests.csproj
├── Stubs
│ ├── ConnectionStub.cs
│ └── ElasticsearchSinkTestsBase.cs
├── Templating
│ ├── DiscoverVersionHandlesUnavailableServerTests.cs
│ ├── DiscoverVersionTests.cs
│ ├── DoNotRegisterTemplateIfItExists.cs
│ ├── OverwriteTemplateTests.cs
│ ├── RegisterCustomTemplateTests.cs
│ ├── SendsTemplateHandlesUnavailableServerTests.cs
│ ├── SendsTemplateTests.cs
│ ├── Sendsv6TemplateTests.cs
│ ├── Sendsv7TemplateTests.cs
│ ├── Sendsv8TemplateTests.cs
│ ├── SetElasticsearchSinkOptions.cs
│ ├── SetFiveReplicasInTemplateTests.cs
│ ├── SetTwoShardsInTemplateTests.cs
│ ├── SetZeroReplicasInTemplateTests.cs
│ ├── TemplateMatchTests.cs
│ ├── template_v6.json
│ ├── template_v7.json
│ ├── template_v7_no-aliases.json
│ ├── template_v8.json
│ ├── template_v8_no-aliases_0replicas.json
│ ├── template_v8_no-aliases_2shards.json
│ └── template_v8_no-aliases_5replicas.json
└── TestDataHelper.cs
24 directories, 103 files
标签:
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论