如何使用 Serilog.Sink.MongoDB in appsettings.json in ASP.NET (Blazor) 设置数据库名称?

How can I set the database name using Serilog.Sink.MongoDB in appsettings.json in ASP.NET (Blazor)?

我将 Serilog 设置为通过 Serilog.Sinks.MongoDB 写入 MongoDB。

我正在使用 appsettings.json 进行配置(我的密码被 XXXXXXX 屏蔽):

{
  "Name": "MongoDB",
  "Args": {
  "databaseUrl": "mongodb+srv://AtlasUser:XXXXXXX/test?retryWrites=true&w=majority&ssl=true",
  "databaseName": "MyLogs",
  "collectionName": "MyLoggerCollection",
  "cappedMaxSizeMb": "1024",
  "cappedMaxDocuments": "50000"
}

这会生成一个名为 test 的数据库和一个名为 'MyLoggerCollection' 的集合。

"databaseName": "MyLogs"好像没有效果

创建的数据库仍然命名为test(我猜是默认的?)。

如何将数据库名称设置为MyLogs

您在连接字符串中将数据库名称指定为 testis where the database name used comes from - 而不是 databaseName 属性。

"databaseUrl": "mongodb://username:password@ip:port**/dbName?authSource=admin"`

这应该有效:

{
  "Name": "MongoDB",
  "Args": {
  "databaseUrl": "mongodb+srv://AtlasUser:XXXXXXX/MyLogs?retryWrites=true&w=majority&ssl=true",
  "collectionName": "MyLoggerCollection",
  "cappedMaxSizeMb": "1024",
  "cappedMaxDocuments": "50000"
}