Json Serilog到MongoDB Atlas
我试图让Serilog在MongoDB Atlas DB中的.Net核心API中记录消息到集合中 我需要在appsettings.json中设置连接字符串,以便对其进行配置。我是这样做的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": {
"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的连接。