Docs Menu
Docs Home
/ / /
C#/.NET
/

ログ記録

項目一覧

  • Overview
  • ログ記録の構成
  • カテゴリ別のログ メッセージ
  • ログの冗長度の構成

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

重要

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

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

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

プロパティ
説明
LoggerFactory
The ILoggerFactory object that creates an ILogger. You can create an ILoggerFactory object by using the LoggerFactory.Create() method.

Data Type: ILoggerFactory
Default: null
MaxDocumentSize
Optional. The maximum number of characters for extended JSON documents in logged messages.

For example, when the driver logs the CommandStarted message, it truncates the Command field to the number of characters specified in this parameter.

Data Type: integer
Default: 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
The progress of commands run against your cluster, represented by CommandStartedEvent, CommandSucceededEvent, and CommandFailedEvent
MongoDB.SDAM
Changes in the topology of the cluster, including ClusterAddedServerEvent, ClusterRemovedServerEvent, ServerHeartbeatStartedEvent, ClusterDescriptionChangedEvent, and ServerDescriptionChangedEvent
MongoDB.ServerSelection
The decisions that determine which server to send a particular command to
MongoDB.Connection
Changes in the cluster connection pool, including ConnectionPoolReadyEvent, ConnectionPoolClosedEvent, ConnectionCreatedEvent, and ConnectionCheckoutEvent
MongoDB.Internal.*
Prefix for all other .NET/C# Driver internal components

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

戻る

Indexes