2020-07-15 02:24:43
Serilog的可用Sink精选列表:
Serilog使用接收器(Sink)以各种格式将日志事件写入存储。以下是一些精选的Serilog Sink,它们由更广泛的Serilog社区开发和支持:
Console
功能:通过标准输出将日志事件写入Windows控制台或ANSI终端。
特点:支持着色和自定义主题,包括macOS、Linux和Windows 10上的ANSI 256色主题。
File
功能:将日志事件写入一个或多个文本文件。
适用场景:适用于需要将日志持久化到文件系统的场景。
Async Wrapper
功能:其他Serilog sink的异步包装器,通过将工作委托给后台线程来减少日志记录调用的开销。
注意:许多基于网络的sink(如CouchDB、Elasticsearch、MongoDB等)已经在本地执行异步批处理,不会从这个包装器中受益。特别适用于可能受I/O瓶颈影响的非批处理接收器,例如File和RollingFile接收器。
Debug
功能:将日志事件写入Visual Studio调试输出窗口。
适用场景:适用于开发过程中的调试。
Windows Event Log
功能:将日志事件写入Windows事件日志。
适用场景:适用于需要将日志集成到Windows事件日志系统的场景。
RichTextBox.Wpf
功能:将日志事件写入任何支持着色和自定义主题的WPF RichTextBox控件。
适用场景:适用于需要在WPF应用程序中实时显示日志的场景。
Notepad
功能:将日志事件写入记事本。
特点:简单直接,无需接触文件系统即可开始接收日志。
SQLite
功能:写入SQLite数据库的轻量级高性能Serilog sink。
适用场景:适用于需要将日志存储到SQLite数据库的场景。
LiteDB
功能:将日志事件作为文档写入LiteDB。
适用场景:适用于需要将日志存储到LiteDB数据库的场景。
SQL Server/PostgreSQL/OrientDB/RavenDB/RethinkDB
功能:将日志事件写入各种关系型或非关系型数据库。
适用场景:适用于需要将日志存储到特定数据库系统的场景。
Elasticsearch/CouchDB/CouchBase/MongoDB
功能:将日志事件写入各种NoSQL数据库。
适用场景:适用于需要将日志存储到NoSQL数据库,并进行后续分析或搜索的场景。
Seq
功能:将日志事件写入Seq结构化日志服务器。
特点:支持所有现代.NET平台,提供强大的日志搜索和分析功能。
Exceptionless
功能:使用默认的ExceptionlessClient客户端实例记录日志和未处理的异常。
适用场景:适用于需要实时监控和记录异常信息的场景。
Syslog (RFC5424, RFC3164)
功能:将Serilog事件写入Syslog。
适用场景:适用于需要将日志发送到Syslog服务器的场景。
Email/Email PickUp
功能:通过SMTP邮件发送日志事件,或将日志事件以电子邮件格式发送到文件系统。
适用场景:适用于需要将日志通过电子邮件发送的场景。
Unity3D/Xamarin
功能:为Unity3D和Xamarin平台提供日志记录支持。
适用场景:适用于游戏开发和跨平台应用开发中的日志记录。
Observable
功能:通过IObservable将Serilog事件写入观察者(Rx)。
适用场景:适用于需要利用响应式编程(Reactive Programming)处理日志事件的场景。
此外,还有更多Serilog Sink可供选择,如Literate Console、MEL ILogger、NLog、Log4Net、LogDNA、LogEntries、Loggly(包括Bulk API)、Logify、Splunk、Trace、Text Writer、In-memory/assertions、Slack、Stackify、Sumo Logic(包括Sumo Logic官方提供的Sink)、Scalyr、YouTrack、Rollbar、Dynatrace、elmah.io、Logmatic.io、Loggr、Marten、Nats、NewRelic、Period Batching、RayGun等。这些Sink提供了丰富的日志记录选项,可以满足不同场景下的需求。
要获取更多关于Serilog Sink的信息,可以访问Serilog的官方文档或NuGet上的serilog标记进行搜索。