AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。
Docs Menu

ログ記録

バージョン 2.18 以降、 .NET/ C#ドライバーは標準の.NETロギングAPIを使用します。このガイドでは、ドライバーを使用してアプリケーションのログを構成する方法を学習できます。

重要

この機能を使用するには、 Microsoft.Expressions.Loging.Con パッケージ をプロジェクトに追加する必要があります。

アプリケーションのログ設定を指定するには、 LoggingSettingsクラスの新しいインスタンスを作成し、それをMongoClientSettingsオブジェクトのLoggingSettingsプロパティに割り当てます。

LoggingSettingsコンストラクターは次のパラメーターを受け入れます。

プロパティ
説明

LoggerFactory

ILogger を作成する ILoggerFactory オブジェクト。LoggerFactory.Create() メソッドを使用して ILoggerFactory オブジェクトを作成できます。

データ型: ILoggerFactory
デフォルト: null

MaxDocumentSize

任意.ログメッセージ内の拡張 JSON ドキュメントの最大文字数。

例えば、ドライバーが CommandStarted メッセージをログすると、Command フィールドが切り捨てられますこのパラメータで指定された文字数に。

データ型: integer
デフォルト: 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 は、次のカテゴリを使用してメッセージを分類します。

カテゴリ
説明

MongoDB.Command

クラスターに対して実行されたコマンドの進行状況( CommandStartedEventCommandSucceededEventCommandFailedEventで表示)

MongoDB.SDAM

クラスターのトポロジーの変更( ClusterAddedServerEventClusterRemovedServerEventServerHeartbeatStartedEventClusterDescriptionChangedEventServerDescriptionChangedEventなど)

MongoDB.ServerSelection

特定のコマンドをどのサーバーに送信するかを決定する

MongoDB.Connection

クラスター接続プールの変更( ConnectionPoolReadyEventConnectionPoolClosedEventConnectionCreatedEventConnectionCheckoutEventなど)

MongoDB.Internal.*

その他のすべての .NET/C# ドライバー内部コンポーネントのプレフィックス

Tip

Defaultカテゴリを構成することで、すべてのログ カテゴリの最小冗長度を指定できます。

標準の .NET ログ メカニズムを使用して、各メッセージ カテゴリのログの冗長度を構成できます。 次のコード サンプルは、 MongoClientを構成して 2 種類のメッセージをログに記録する方法を示しています。

  • ログ レベルがError以上のすべてのカテゴリのすべてのメッセージ

  • SDAM カテゴリからのログ レベルがDebug以上のすべてのメッセージ

この例では、構成はメモリ内で行われています。 このコードでは、キーが"LogLevel:<category>"で、値がそのカテゴリ内のメッセージの最小ログ レベルであるDictionary<string, string>が作成されます。 次に、コードは辞書をConfigurationBuilderオブジェクトに追加し、 ConfigurationBuilderLoggerFactoryに追加します。

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 のログ記録ドキュメント を参照してください。