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 コレクション: https://docs.mongodb.org/manual/core/capped-collections/ Serilog の GitHub MongoDB シンク (ターゲット): https://github.com/serilog/serilog-sinks-mongodb

おそらく、TTL ドキュメントと一緒に通常のコレクションを使用して、独自の Sink を作成することさえ簡単になるでしょう。

4

1 に答える 1

1

引数はperiodTTL ではなく、Serilog がイベントをバッチで MongoDB に送信する前にバッファリングする期間です。この API では TTL がサポートされていないと思います。

于 2015-12-17T21:16:36.663 に答える