Json Serilog到MongoDB Atlas

Json Serilog到MongoDB Atlas,json,mongodb,.net-core,serilog,Json,Mongodb,.net Core,Serilog,我试图让Serilog在MongoDB Atlas DB中的.Net核心API中记录消息到集合中 我需要在appsettings.json中设置连接字符串,以便对其进行配置。我是这样做的 "Serilog": { "Using": [ "Serilog.Sinks.MongoDB" ], "MinimumLevel": { "Default": "Information", "Override": { "Microsoft": "Error

我试图让Serilog在MongoDB Atlas DB中的.Net核心API中记录消息到集合中

我需要在appsettings.json中设置连接字符串,以便对其进行配置。我是这样做的

"Serilog": {
    "Using": [ "Serilog.Sinks.MongoDB" ],
    "MinimumLevel": {
      "Default": "Information",
      "Override": {
        "Microsoft": "Error",
        "System": "Warning"
      }
    },
    "WriteTo": [
      {
        "Name": "MongoDB",
        "Args": {
          "databaseUrl": "mongodb://<user>:<password>@<AtlasServer>:27017/logs",
          "collectionName": "log"

        }
      }
    ]
  }
“Serilog”:{
“使用”:[“Serilog.Sinks.MongoDB”],
“最低级别”:{
“默认值”:“信息”,
“覆盖”:{
“Microsoft”:“错误”,
“系统”:“警告”
}
},
“书面形式”:[
{
“名称”:“MongoDB”,
“Args”:{
“databaseUrl:“mongodb://:@:27017/logs”,
“collectionName”:“日志”
}
}
]
}
上述操作未成功记录。但是,如果我将它指向MongoDB的本地实例,并使用相同的方法/连接字符串格式,那么它会记录日志

我完成了在MongoDB Atlas中创建集合的所有步骤,创建了集合、用户和所需IP的白名单


关于我在这里做错了什么,有什么想法吗?

为了防止其他人遇到这种情况,我将发布问题的解决方案,这最终很简单,但很难找到

原来Serilog MongoDB接收器使用的是.Net驱动程序版本2.3

因此,在Atlas中的连接字符串生成器上,我为.NET选择了该版本,它生成了一个没有“+srv”部分的连接字符串


希望有机会帮助别人

为了防止其他人遇到这种情况,我将发布问题的解决方案,这最终很简单,但很难找到

原来Serilog MongoDB接收器使用的是.Net驱动程序版本2.3

因此,在Atlas中的连接字符串生成器上,我为.NET选择了该版本,它生成了一个没有“+srv”部分的连接字符串


希望有机会帮助别人

出于好奇,一个成功的连接字符串的开头是:“mongodb://{userName}:{pswd}@{cluster}…”而不是“mongodb+srv://{userName}:{pswd}@{cluster}…”。由于Atlas站点“MongoDB 3.4及更高版本不支持2.3”,我成功地获得了一个驱动程序版本为2.4的连接字符串。好奇的是,成功的连接字符串开头像:“MongoDB://{userName}:{pswd}:{cluster}…”而不是“MongoDB+srv://{userName}:{pswd}{cluster}…”。由于Atlas网站上的“MongoDB 3.4及更高版本不支持2.3”,我成功地获得了与驱动程序版本2.4的连接。