use*_*862 5 .net mongodb serilog
我有一个本地MongoDb数据库实例(通过从Windows命令行运行mongod创建),以及一个简单的控制台程序,它尝试使用Serilog及其MongoDb接收器将字符串记录到MongoDb数据库:
var log = new LoggerConfiguration()
.MinimumLevel.Debug()
.WriteTo.ColoredConsole()
.WriteTo.MongoDB("mongodb://localhost/mydb")
.CreateLogger();
log.Fatal("Fatal message");
Run Code Online (Sandbox Code Playgroud)
"致命消息"消息正确写入控制台,但不是我的MongoDb数据库.
我目前的MongoDb数据库是"mydb".根据"show collections",我只有集合system.indexes和testData,而"db.testData.find()"什么也没有产生.
Serilog站点说使用连接字符串"mongo:// mydb/log",但是抛出异常"MongoDB.Driver.dll中发生了'System.FormatException'类型的未处理异常".我在代码中使用的连接字符串在MongoDb站点上指定,网址为http://docs.mongodb.org/manual/reference/connection-string/
如何使用Serilog登录MongoDb?
您可能只是遇到默认(两秒钟?)缓冲延迟 - 如果您在Windows中关闭控制台应用程序,它会硬终止程序,因此无法始终刷新缓冲区.如果是这样,在关闭应用程序之前等待几秒钟将解决此问题.
否则,解决Serilog中所有接收器调试的方法是设置SelfLog.Out:
SelfLog.Out = Console.Error;
Run Code Online (Sandbox Code Playgroud)
这将打印接收器引发的任何异常,允许您快速放大错误,如果它就在那里.
| 归档时间: |
|
| 查看次数: |
1767 次 |
| 最近记录: |