Overview
バージョン 2.18 以降、 .NET/ C#ドライバーは標準の.NETロギングAPIを使用します。このガイドでは、ドライバーを使用してアプリケーションのログを構成する方法を学習できます。
重要
この機能を使用するには、 Microsoft.Expressions.Loging.Con パッケージ をプロジェクトに追加する必要があります。
ログ記録の構成
アプリケーションのログ設定を指定するには、 LoggingSettingsクラスの新しいインスタンスを作成し、それをMongoClientSettingsオブジェクトのLoggingSettingsプロパティに割り当てます。
LoggingSettingsコンストラクターは次のパラメーターを受け入れます。
プロパティ | 説明 |
|---|---|
|
|
| 任意.ログメッセージ内の拡張 JSON ドキュメントの最大文字数。 |
次のコード例は、すべてのデバッグ メッセージをコンソールに記録するMongoClientを作成する方法を示しています。
using var loggerFactory = LoggerFactory.Create(b => { b.AddSimpleConsole(); b.SetMinimumLevel(LogLevel.Debug); }); var settings = MongoClientSettings.FromConnectionString("<connection string>"); settings.LoggingSettings = new LoggingSettings(loggerFactory); var client = new MongoClient(settings);
カテゴリ別のログ メッセージ
MongoDB クラスターによって生成される各メッセージには、カテゴリが割り当てられます。 これにより、さまざまなタイプのメッセージに対して異なるログ レベルを指定できます。
MongoDB は、次のカテゴリを使用してメッセージを分類します。
カテゴリ | 説明 |
|---|---|
| クラスターに対して実行されたコマンドの進行状況( |
| クラスターのトポロジーの変更( |
| 特定のコマンドをどのサーバーに送信するかを決定する |
| クラスター接続プールの変更( |
| その他のすべての .NET/C# ドライバー内部コンポーネントのプレフィックス |
Tip
Defaultカテゴリを構成することで、すべてのログ カテゴリの最小冗長度を指定できます。
ログの冗長度の構成
標準の .NET ログ メカニズムを使用して、各メッセージ カテゴリのログの冗長度を構成できます。 次のコード サンプルは、 MongoClientを構成して 2 種類のメッセージをログに記録する方法を示しています。
ログ レベルが
Error以上のすべてのカテゴリのすべてのメッセージSDAM カテゴリからのログ レベルが
Debug以上のすべてのメッセージ
この例では、構成はメモリ内で行われています。 このコードでは、キーが"LogLevel:<category>"で、値がそのカテゴリ内のメッセージの最小ログ レベルであるDictionary<string, string>が作成されます。 次に、コードは辞書をConfigurationBuilderオブジェクトに追加し、 ConfigurationBuilderをLoggerFactoryに追加します。
var categoriesConfiguration = new Dictionary<string, string> { { "LogLevel:Default", "Error" }, { "LogLevel:MongoDB.SDAM", "Debug" } }; var config = new ConfigurationBuilder() .AddInMemoryCollection(categoriesConfiguration) .Build(); using var loggerFactory = LoggerFactory.Create(b => { b.AddConfiguration(config); b.AddSimpleConsole(); }); var settings = MongoClientSettings.FromConnectionString("<connection string>"); settings.LoggingSettings = new LoggingSettings(loggerFactory); var client = new MongoClient(settings);
Tip
ログの冗長 の構成の詳細については、Microsoft .NET のログ記録ドキュメント を参照してください。