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

로깅

이 페이지의 내용

  • 개요
  • 로깅 구성
  • 카테고리별 로그 메시지
  • 로그 상세도 구성

버전 2.18 부터 .NET/C# 드라이버는 표준 .NET 로깅 API를 사용합니다. 이 가이드에서는 드라이버를 사용하여 애플리케이션에 대한 로깅을 구성하는 방법을 배울 수 있습니다.

중요

이 기능을 사용하려면 Microsoft.Extensions.Logging.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

Default 카테고리를 구성하여 모든 로깅 카테고리에 대한 최소 상세도를 지정할 수 있습니다.

표준 .NET 로깅 메커니즘을 사용하여 각 메시지 카테고리의 로그 상세도를 구성할 수 있습니다. 다음 코드 샘플은 두 가지 유형의 메시지를 기록하도록 MongoClient를 구성하는 방법을 보여 줍니다.

  • 모든 카테고리에서 로그 수준이 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);

로그 상세도 구성에 대한자세한 내용은 Microsoft .NET 로깅 설명서를 참조하세요.

돌아가기

Indexes