Exploração madeireira
Nesta página
Visão geral
A partir da versão 2.18, o driver .NET/C# usa a API de registropadrão do .NET. Neste guia, você pode aprender a usar o driver para configurar o registro para seu aplicativo.
Importante
Para usar esse recurso, você deve adicionar o pacote Microsoft.Extensions.Logging.Console ao seu projeto.
Configurar registros
Para especificar as configurações de registro para seu aplicativo, crie uma nova instância da classe LoggingSettings
e, em seguida, atribua-a à propriedade LoggingSettings
do seu objeto MongoClientSettings
.
O construtor do LoggingSettings
aceita os seguintes parâmetros:
Propriedade | Descrição |
---|---|
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 |
A seguinte amostra de código mostra como criar um MongoClient
que registra todas as mensagens de depuração no console:
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);
Mensagens de registro por categoria
Cada mensagem gerada por um cluster MongoDB recebe uma categoria. Isso permite especificar diferentes níveis de registro para diferentes tipos de mensagens.
O MongoDB usa as seguintes categorias para classificar mensagens:
categoria | Descrição |
---|---|
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 |
Dica
Você pode especificar a verbosidade mínima para todas as categorias de registro configurando a categoria Default
.
Configurar verbosidade de registro
Você pode configurar a verbosidade de registro de cada categoria de mensagem usando o mecanismo de registro .NET padrão. A seguinte amostra de código mostra como configurar um MongoClient
para registrar dois tipos de mensagens:
Todas as mensagens com nível de registro
Error
ou superior de todas as categoriasTodas as mensagens com nível de registro
Debug
ou superior da categoria SDAM
Neste exemplo, a configuração é feita na memória. O código cria um Dictionary<string, string>
em que a chave é "LogLevel:<category>"
e o valor é o nível mínimo de registro de mensagens nessa categoria. O código adiciona o dicionário a um objeto ConfigurationBuilder
e, em seguida, adiciona o ConfigurationBuilder
a um 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);
Dica
Para obter mais informações sobre como configurar a verbosidade do log, consulte a documentação de log do Microsoft .NET.