로깅
이 페이지의 내용
개요
버전 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
객체에 딕셔너리를 추가한 후 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);
팁
로그 상세도 구성에 대한자세한 내용은 Microsoft .NET 로깅 설명서를 참조하세요.