Menu Docs
Página inicial do Docs
/ / /
C#/.NET
/

Exploração madeireira

Nesta página

  • Visão geral
  • Configurar registros
  • Mensagens de registro por categoria
  • Configurar verbosidade de registro

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.

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);

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.

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 categorias

  • Todas 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 o detalhamento do log, consulte a documentação de log do Microsoft .NET.

Voltar

Indexes