Serilog は上限付きコレクションの期間をどのように実装しましたか? このコードを参照してください:
Log.Logger = new LoggerConfiguration() .WriteTo.MongoDBCapped(
database: database,
restrictedToMinimumLevel: (Serilog.Events.LogEventLevel)logEventLevel,
collectionName: _collectionName,
period: TimeSpan.FromDays(RetainedDays))
MongoDB のドキュメントによると、「TTL 機能」を上限付きコレクションと共に使用してドキュメントを保存することはできないためです。だから私は仮定しています:ライブラリはコード内で何らかの形でこれを追跡しますが、どうやってそれが十分に速いか疑問に思っています。
MongoDB Capped コレクション: https://docs.mongodb.org/manual/core/capped-collections/ Serilog の GitHub MongoDB シンク (ターゲット): https://github.com/serilog/serilog-sinks-mongodb
おそらく、TTL ドキュメントと一緒に通常のコレクションを使用して、独自の Sink を作成することさえ簡単になるでしょう。