Overview
从版本 2.18 开始, .NET/ C#驱动程序使用标准.NET日志记录API。在本指南中,您可以学习如何使用驱动程序为应用程序配置日志记录。
配置日志记录
要指定应用程序的日志记录设置,请创建 LoggingSettings 类的新实例,然后将其赋给 MongoClientSettings 对象的 LoggingSettings 属性。
LoggingSettings 构造函数接受以下参数:
属性 | 说明 |
|---|---|
| 创建 |
| 可选.日志记录的消息中扩展 JSON 文档的最大字符数。 |
以下示例代码展示了如何创建 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 使用以下类别对消息进行分类:
category | 说明 |
|---|---|
| 对集群运行命令的进度,用 |
| 集群拓扑结构变更,包括 |
| 决定向哪个服务器发送特定命令的决策 |
| 集群连接池中的变更,包括 |
| 所有其他 .NET/C# 驱动程序内部组件的前缀 |
提示
您可以通过配置 Default 类别,为所有日志类别指定最低冗余度。
配置日志详细程度
您可以通过标准 .NET 日志机制配置各消息类别的日志冗余度。以下代码示例展示了如何配置 MongoClient 来记录两种类型的消息:
所有类别中日志级别为
Error(错误)或更高的全部消息SDAM 类别中所有日志级别为
Debug或更高的消息
在本例中,配置是在内存中完成的。这段代码会创建一个 Dictionary<string, string>(字典),其中键为 "LogLevel:<category>",值为该类别中消息的最低日志级别。然后,代码将字典添加到 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日志记录文档。