Overview
バージョン 2.18 以降、 .NET/ C#ドライバーは標準の.NETロギングAPIを使用します。このガイドでは、ドライバーを使用してアプリケーションのログを構成する方法を学習できます。
重要
この機能を使用するには、 Microsoft.Expressions.Loging.Con パッケージ をプロジェクトに追加する必要があります。
ログ記録の構成
アプリケーションのログ設定を指定するには、  LoggingSettingsクラスの新しいインスタンスを作成し、それをMongoClientSettingsオブジェクトのLoggingSettingsプロパティに割り当てます。
LoggingSettingsコンストラクターは次のパラメーターを受け入れます。
| プロパティ | 説明 | 
|---|---|
| 
 | The  ILoggerFactoryobject that creates anILogger. You can create
anILoggerFactoryobject by using theLoggerFactory.Create()method.Data Type: ILoggerFactory Default:  null | 
| 
 | Optional. The maximum number of characters for extended JSON documents in logged
messages. For example, when the driver logs the  CommandStartedmessage, it truncates
theCommandfield to the number of characters specified in this parameter.Data Type:  integerDefault:  1000 | 
次のコード例は、すべてのデバッグ メッセージをコンソールに記録する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 は、次のカテゴリを使用してメッセージを分類します。
| カテゴリ | 説明 | 
|---|---|
| 
 | The progress of commands run against your cluster, represented by
 CommandStartedEvent,CommandSucceededEvent, andCommandFailedEvent | 
| 
 | Changes in the topology of the cluster, including
 ClusterAddedServerEvent,ClusterRemovedServerEvent,ServerHeartbeatStartedEvent,ClusterDescriptionChangedEvent,
andServerDescriptionChangedEvent | 
| 
 | The decisions that determine which server to send a particular command to | 
| 
 | Changes in the cluster connection pool, including  ConnectionPoolReadyEvent,ConnectionPoolClosedEvent,ConnectionCreatedEvent, andConnectionCheckoutEvent | 
| 
 | Prefix for all other .NET/C# Driver internal components | 
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 のログ記録ドキュメント を参照してください。