1

Serilog 如何实施封顶收集期限?请参阅此代码:

Log.Logger = new LoggerConfiguration() .WriteTo.MongoDBCapped(
                            database: database,
                            restrictedToMinimumLevel: (Serilog.Events.LogEventLevel)logEventLevel,
                            collectionName: _collectionName,
                            period: TimeSpan.FromDays(RetainedDays))

因为根据 MongoDB 文档,您不能使用其“TTL 功能”和上限集合来存储文档。所以我假设:库以某种方式在其代码中跟踪这一点,但我想知道如何:以及它是否足够快。

MongoDB Capped Collection: https://docs.mongodb.org/manual/core/capped-collections/ GitHub MongoDB Sink (target) for Serilog: https://github.com/serilog/serilog-sinks-mongodb

也许用普通的集合和 TTL 文档编写我们自己的 Sink 甚至会更容易。

4

1 回答 1

1

period参数不是 TTL,而是 Serilog 在将事件批量发送到 MongoDB 之前缓冲事件的持续时间。我认为此 API 不支持 TTL。

于 2015-12-17T21:16:36.663 回答