Serilog

Serilog是.NET开源结构化日志类库

开源地址:https://github.com/serilog

官网:https://serilog.net/

Serilog能做什么:

  1. 记录代码中的BUG和错误
  2. 更快的找到生产环境中的问题
  3. 深入的了解系统运行表现

想对Serilog多点了解,请查阅[译]Serilog Tutorial,翻译的很棒。

重现Error出现的场景

在自己的项目中使用Serilog并使用MongoDB记录日志,需要nuget引用 SerilogSerilog.Sinks.MongoDB

我引用的是 Serilog 2.7.1Serilog.Sinks.MongoDB 3.1.0

Serilog.Sinks.MongoDB 3.1.0 依赖的是的MongoDB组件库是 MongoDB.Driver 2.3.0MongoDB.Driver.Core 2.3.0MongoDB.Bson 2.3.0,所以当nuget引用Serilog.Sinks.MongoDB 3.1.0 自然会引用 MongoDB.Driver 2.3.0MongoDB.Driver.Core 2.3.0MongoDB.Bson 2.3.0

在记录MongoDB日志时报错,内容如下

The GuidRepresentation for the reader is CSharpLegacy, which requires the binary sub type to be UuidLegacy, not UuidStandard

解决方案

程序员google大法,找到同样的错误。点击查看:

The GuidRepresentation for the reader is CSharpLegacy, which requires the binary sub type to be UuidLegacy, not UuidStandard

文中给了三种解决方案:

1、修改全局配置 BsonDefaults.GuidRepresentation

BsonDefaults.GuidRepresentation = GuidRepresentation.Standard;

2、当你创建collection时指定配置

MongoDatabase db = ???;
string collectionName = ???;
var collectionSettings = new MongoCollectionSettings {
GuidRepresentation = GuidRepresentation.Standard
};
var collection = db.GetCollection<BsonDocument>(collectionName, collectionSettings);

3、更新驱动

原文如下

Solution 3.update to .NET Driver Version 2.5.x

.NET Driver Version 2.5.0 Release Notes say below:

The main new feature of 2.5.0 is support for the new features of the 3.6 version of the server:

...

Improved support for reading and writing UUIDs in BsonBinary subtype 4 format

解决方案1和2都有点瞎啊,推测要改Serilog.Sinks.MongoDB的源码。自然先按照最简单的开始尝试,更新MongoDB驱动。

我的尝试解决方案:MongoDB.Driver 2.3.0MongoDB.Driver.Core 2.3.0MongoDB.Bson 2.3.0 统统更新至2.7.0版本(注:当前最新的稳定版本)。然后,嘣!问题解决!

Serilog记录MongoDB日志报错:requires the binary sub type to be UuidLegacy, not UuidStandard的更多相关文章

  1. The GuidRepresentation for the reader is CSharpLegacy, which requires the binary sub type to be Uuid

    使用客户端链接MongoDb报错 The GuidRepresentation for the reader is CSharpLegacy, which requires the binary su ...

  2. Django日志记录详细的报错信息

    当服务器500错误的时候,普通日志只会记录一行500的request信息,并不会记录详细的报错定位 [ERROR] 2019-06-12 15:07:03,597 "GET /api/v1/ ...

  3. 【zabbix监控问题】记录zabbix控制面板报错及日志报错的解决方法

    问题1: 上图是我已经解决了的截图.在百度查询的资料中,说是把zabbix_agentd.conf文件中server监听的主机127.0.0.1去掉,但是我去掉之后问题仍然没有解决,最后在这篇博客上发 ...

  4. 11gR2数据库日志报错:Fatal NI connect error 12170、

    11gR2数据库日志报错:Fatal NI connect error 12170.TNS-12535.TNS-00505 [问题点数:100分,结帖人MarkIII]             不显示 ...

  5. Oracle添加记录的时候报错:违反完整性约束,未找到父项关键字

    今天需要向一个没有接触过的一个Oracle数据库中添加一条记录,执行报错: 分析: 报错的根本原因:未找到父项关键字的原因是因为你在保存对象的时候缺失关联对象. 问题的解决思路:先保存关联对象后再保存 ...

  6. zabbix客户端日志报错no active checks on server [192.168.3.108:10051]: host [192.168.3.108] not found

    zabbix客户端日志报错: 45647:20160808:220507.717 no active checks on server [192.168.3.108:10051]: host [192 ...

  7. 记一次rsync日志报错directory has vanished

    中午两点的时候邮件告知rsync同部svn源库失败,看rsync日志报错显示如上,当时还在上课,没在公司,怀疑是不是有人动了svn的版本库,后来询问同事并通过vpn登录服务器上查看版本库是正常的,也没 ...

  8. 【docker】【redis】2.docker上设置redis集群---Redis Cluster部署【集群服务】【解决在docker中redis启动后,状态为Restarting,日志报错:Configured to not listen anywhere, exiting.问题】【Waiting for the cluster to join...问题】

    参考地址:https://www.cnblogs.com/zhoujinyi/p/6477133.html https://www.cnblogs.com/cxbhakim/p/9151720.htm ...

  9. 树莓派 mongodb 安装&报错处理

    树莓派 mongodb 安装&报错处理 编译过的源码下载地址: http://files.cnblogs.com/files/xueshanshan/mongodb-rpi.zip addus ...

随机推荐

  1. 处理Word文档中所有修订

    打开现有文档进行编辑 若要打开现有文档,您可以将 Word类实例化,如以下 using 语句所示. 为此,您可以使用Open(String, Boolean) 方法打开具有指定 fileName 的字 ...

  2. POJ 1067 威佐夫博弈

    点这里去看题 套公式,判断是否为奇异组合 #include<stdio.h> #include<algorithm> #include<math.h> #inclu ...

  3. Timer of STM32

    下面是STM32得定时器程序,分两个文件Timer.c和Timer.h /*************************************************************** ...

  4. Monitor类:Object synchronization method was called from an unsynchronized block of code.

    最近,在维护以前老系统的时候,发现了这样一个错误:Object synchronization method was called from an unsynchronized block of co ...

  5. JSTL配置文件下载地址

    Apache Tomcat安装JSTL 库步骤如下: 从Apache的标准标签库中下载的二进包(jakarta-taglibs-standard-current.zip). 官方下载地址:http:/ ...

  6. HTB Linux queuing discipline manual - user guide笔记

    1. Introduction HTB is meant as a more understandable, intuitive and faster replacement for the CBQ ...

  7. 【web渗透技术】渗透攻防Web篇-SQL注入攻击初级

    [web渗透技术]渗透攻防Web篇-SQL注入攻击初级 前言不管用什么语言编写的Web应用,它们都用一个共同点,具有交互性并且多数是数据库驱动.在网络中,数据库驱动的Web应用随处可见,由此而存在的S ...

  8. Android屏幕相关的概念

    1. 屏幕尺寸 实际的物理尺寸,作为屏幕的对角线测量. 为简单起见,安卓所有的实际屏幕尺寸为四个广义的大小:小,正常,大,和特大. 2. 屏幕密度 一个屏幕的物理区域内像素的数量:通常称为DPI(每英 ...

  9. ubuntu18.04安装mongoDB

    STEP 1:  在终端输入GPK码 $  sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334B ...

  10. 【Spark调优】小表join大表数据倾斜解决方案

    [使用场景] 对RDD使用join类操作,或者是在Spark SQL中使用join语句时,而且join操作中的一个RDD或表的数据量比较小(例如几百MB或者1~2GB),比较适用此方案. [解决方案] ...