仅第一次记录显示,除非强制处置

2023-12-03

我正在使用 vs 2017,写一个netcoreapp2.0库,并使用 UnitTest 项目对其进行测试(XUnit 和 NUnit 给出相同的结果)。
我注意到除非我强行处置我的Serilog记录器,只有第一行会出现在Seq.

这是我的两堂课。图书馆一:

public class Class1
{
    public static Logger _log;

    public Class1(Logger log)
    {
        _log = log;
        _log.Verbose("Class 1 constructor fineshed");
    }

    public void LogMessage(string s)
    {
        _log.Debug("Got message: {Message}", s);
    }
}

和单元测试:

public class UnitTest1
{
    public static Logger _log = new LoggerConfiguration()
                                          .WriteTo.Seq("http://localhost:5341", Serilog.Events.LogEventLevel.Verbose)
                                          .MinimumLevel.Verbose()
                                          .CreateLogger();
    [Fact]
    public void Test1()
    {
        _log.Debug("Test 1 logging");
        var c = new Class1(_log);
        c.LogMessage("Logging from test");

        _log.Information("Test fineshed");

        _log.Dispose(); // Without this, only "Test 1 logging" is logged.
    }
}

引用的程序集(来自单元测试项目):

<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.3.0-preview-20170628-02" />
<PackageReference Include="serilog" Version="2.5.0" />
<PackageReference Include="serilog.sinks.seq" Version="3.3.3" />
<PackageReference Include="xunit" Version="2.2.0" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.2.0" />

有什么建议么?

(这里是一个演示项目的链接,使用 vs 2017 打开恢复包并运行测试:演示项目 )


看来您遇到了同样的问题如这篇博文中所述。缺点是您有责任处理记录器,记录器会将其内容物冲入适当的水槽。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

仅第一次记录显示,除非强制处置 的相关文章

  • 尚未注册类型“IServiceProviderFactory[Autofac.ContainerBuilder]”的服务

    当运行以下命令添加数据库迁移脚本时 出现以下错误 dotnet ef migrations add InitialCreate v o Migrations context MyContext 访问 Microsoft Extensions
  • 在实体框架拦截器中向 DbScanExpression 添加内部联接

    我正在尝试使用实体框架 CommandTree 拦截器通过 DbContext 向每个查询添加过滤器 为了简单起见 我有两个表 一个称为 User 有两列 UserId 和 EmailAddress 另一个称为 TenantUser 有两列
  • 何时使用 =default 使析构函数默认?

    尽管对构造函数使用 default 对我来说很清楚 即强制编译器在其他构造函数存在时创建默认构造函数 但我仍然无法理解这两种类型的析构函数之间的区别 那些使用 default 的 那些没有显式定义并由编译器自动生成的 我唯一想到的是 gro
  • FileStream 构造函数和默认缓冲区大小

    我们有一个使用 NET 4 用 C 编写的日志记录类 我想添加一个构造函数参数 该参数可以选择设置文件选项 WriteThrough http msdn microsoft com en us library system io fileo
  • 更改 Qt OpenGL 窗口示例以使用 OpenGL 3.3

    我正在尝试更改 Qt OpenGL 示例以使用更现代的 opengl 版本 330 似乎合适 所以我做了 在 main cpp 上设置版本和配置文件 设置着色器版本 更改着色器以使用统一 它现在构建没有任何错误 但我只看到一个空白窗口 我错
  • 平滑滚动.net 表单

    您好 我正在 net 中使用表单 并且在运行时动态添加大量链接标签 我将这些链接标签添加到面板并将该面板添加到 winform 当链接标签的数量增加时 表单会显示一个自动滚动条 垂直 现在 当我使用自动滚动向下滚动时 表单在滚动时不会更新其
  • 信号处理程序有单独的堆栈吗?

    信号处理程序是否有单独的堆栈 就像每个线程都有单独的堆栈一样 这是在 Linux C 环境中 来自 Linux 手册页signal 7 http kernel org doc man pages online pages man7 sign
  • 与 Qt 项目的静态链接

    我有一个在 Visual Studio 2010 Professional 中构建的 Qt 项目 但是 当我运行它 在调试或发布模式下 时 它会要求一些 Qt dll 如果我提供 dll 并将它们放入 System32 中 它就可以工作 但
  • 找不到 assimp-vc140-mt.dll ASSIMP

    我已经从以下位置下载了 Assimp 项目http assimp sourceforge net main downloads html http assimp sourceforge net main downloads html Ass
  • vs2008 c#:Facebook.rest.api如何使用它来获取好友列表?

    如何在此基础上取得进一步的进步 获取好友列表的下一步是什么 string APIKey ConfigurationManager AppSettings API Key string APISecret ConfigurationManag
  • 如何获取 QTableView 的标题列表?

    我有一个QTableView我的对话框中的对象 我需要访问该表的水平标题并将它们放入QStringList object 尽管进行了大量搜索 但我在 Qt 文档中找不到如何获取此标头列表 编辑 我发现的最接近的地方是this https w
  • C++ php 和静态库

    我创建了一个library a 其中包含 cpp 和 h 文件 其中包含很多类 嵌套类和方法 我想在 php 示例中包含这个静态库并尝试使用它 我想提一下 我是 php 新手 我已经在 test cpp 文件中测试了我的 libray a
  • AES 输出是否小于输入?

    我想加密一个字符串并将其嵌入到 URL 中 因此我想确保加密的输出不大于输入 AES 是可行的方法吗 不可能创建任何始终会创建比输入更小的输出的算法 但可以将任何输出反转回输入 如果您允许 不大于输入 那么基本上您只是在谈论同构算法alwa
  • 如何在标准 WPF ListView 中启用 UI 虚拟化

    我正在使用 NET 4 5 VS2012 并且我有一个 ListView 看起来像这样
  • 是否有相当于 Clang/LLVM 的 .spec 文件,在哪里可以找到参考?

    The gcc驱动程序可以配置为使用特定的链接器 特定的选项和其他细节 例如覆盖系统头 specs files 当前 截至撰写本文时 GCC 版本 4 9 0 的手册此处描述了规范文件 https gcc gnu org onlinedoc
  • 每个数据库多个/单个 *.edmx 文件

    我有一个通过 ADO net 数据服务与数据库交互的项目 数据库很大 近 150 个具有依赖关系的表 该项目几年前开始 当时使用的是数据集 现在我们正在转向实体模型关系 由于我们添加了更多需要使用的表 该模型正在不断增长 这是管理这一切的正
  • 您是否将信息添加到每个 .hpp/.cpp 文件的顶部? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 创建新的 C 头文件 源文件时 您会在顶部添加哪些信息 例如 您是否添加日期 您的姓名 文件描述等 您是否使用结构化格式来存储此信息 e g F
  • 使用 QtWebEngine 将 C++ 对象暴露给 Qt 中的 Javascript

    使用 QtWebkit 可以通过以下方式将 C 对象公开给 JavascriptQWebFrame addToJavaScriptWindowObject如中所述https stackoverflow com a 20685002 5959
  • ASP.NET Core MVC 视图组件搜索路径

    在此处的文档中 https learn microsoft com en us aspnet core mvc views view components view aspnetcore 2 2 https learn microsoft
  • xsi:type 属性搞乱了 C# XML 反序列化

    我使用 XSD exe 根据 XML 架构 xsd 文件 自动生成 C 对象 我正在反序列化 OpenCover 输出 但其中一个部分类未正确生成 这是导致异常的行

随机推荐

  • 制作跨所有用户的单例应用程序

    我正在尝试创建一个仅允许所有 Windows 用户使用单个实例的应用程序 我目前正在通过打开一个要写入的文件并将其保持打开状态来完成此操作 这种方法安全吗 您知道使用 C 的替代方法吗 标准解决方案是创建一个全球性的mutex在应用程序启动
  • 使用 Pinterest 登录

    我可以在iPhone上轻松实现facebook登录 但我听说 pinterest 没有官方 API 所以我想知道是否有办法实现Pinterest登录 所以我的应用程序可以在用户使用 pinterest 登录后识别用户 没有官方 Pinter
  • 如何在 ASP.Net Core 1.1 中 Response.Cookies.Append()?

    我正在尝试将全球化添加到 Intranet 应用程序中 使用 cookie 来允许用户选择文化偏好 中间件已设置并正在运行 但我遇到了根据 UI 选择附加到 cookie 的问题 该方法直接来自 Asp Net Core 文档 如下所示 p
  • PHPExcel setCellValueByColumnAndRow 不将数据写入电子表格

    我正在使用 PHPExcel 将数据从 mysql 数据库输出到 Excel 工作簿 我的工作簿有 3 张纸 其中大部分工作正常 我在第三张纸的最后一部分输出时遇到问题 我想做的是输出一个带有行标题和列标题的表 其值取自mysql表 然后根
  • pip install --upgrade sqlalchemy 给出超出最大递归深度

    我试过了pip install upgrade sqlalchemy python2 7 setup py install 并在删除站点包中的 sqlalchemy 文件夹后 我尝试过pip install sqlalchemy 它们都给出
  • CSS 中“::”选择器的含义是什么

    我看到一篇博客文章 其中 在他们的 CSS 代码中使用了 这是他们的部分代码 webkit scrollbar width 10px 该代码对于滚动条工作正常 但我找不到定义此选择器的位置 这正式意味着什么 表示一个伪元素 而不是伪类 他们
  • 任务取消和任务继续选项

    昨天我刚刚了解了任务 TPL 因此我尝试做一个小示例项目 以便了解如何使用它们 我的示例项目设置了一个开始按钮 该按钮开始递增进度条 第二个按钮用于取消任务 用于报告何时调用使用 TaskContinuationOptions OnlyOn
  • 发出具有与声明发出类型相同类型的属性的类

    我已经找到了如何发出一个类 如下所示 class MyClass String MyProperty get set 无法弄清楚如何发出以下内容 class MyClass MyClass MyProperty get set 我面临的问题
  • 如何在使用 Netbeans 的构建过程中将文件夹包含到 dist JAR 中?

    我正在使用 Netbeans 6 9 并且我已研究过编辑 build xml 文件 以便可以将目录和文件包含在构建项目所产生的 jar 文件中 所以我的问题是如何修改 build xml 文件以将其他文件夹放入 jar 中 我的项目有以下目
  • 从 Java 方法返回时 BigDecimal 不保留实际值

    我正在用 Java 制作一个货币转换应用程序 其他一些很棒的 StackOverflow 专家建议我阅读 BigDecimal 以替换 double 来解决任何精度问题 我有两种方法系统 它将起始货币转换为美元 然后将美元价值转换为目标货币
  • 使用名称访问工作表上的自定义属性

    我正在尝试使用属性名称来访问工作表上的自定义属性 但似乎不支持此功能 至少在 C 中不支持 我看到其他人报告它可以在 VB 中工作 并且文档也这么说 有人可以确认这在 C 中不起作用吗 这是示例代码 activeWorkSheet Cust
  • 如何使用 javascript 将时间(上午 12:30)转换为时间戳?

    谁能告诉我该怎么做 我想比较2次 看看哪一次更大 比如中午 12 30 和下午 5 30 使用 Date parse Date parse 24 09 2011 15 21 41
  • Visual Studios Express - 更改调试输出目录

    有没有办法让 VS 项目将调试 EXE 构建到 bin debug 以外的目录 我找到了这个 http msdn microsoft com en us library ms165410 28v vs 80 29 aspx 但是 这仅适用于
  • 更改存储在基于哈希的集合中的对象的哈希代码

    我有一个基于哈希的对象集合 例如HashSet or HashMap 实施过程中会遇到哪些问题hashCode 因为它是根据一些可变字段计算的 所以它可以随着时间而变化 它如何影响休眠 有什么理由让hashCode 默认返回对象的ID是坏的
  • 如何将类及其成员函数分离到头文件和源文件中

    我对如何将简单类的实现和声明代码分离到新的头文件和 cpp 文件中感到困惑 例如 我如何分离以下类的代码 class A2DD private int gx int gy public A2DD int x int y gx x gy y
  • gitlab:调用 gitlab-shell

    我一直在浏览代码gitlab shell 我无法理解它是如何被调用的 如果我对我的服务器 安装了 gitlab shell 进行了拉取 那么 gitlab shell 如何知道它 bin gitlab shell有这一行作为评论 GitLa
  • 事件源的性能

    我目前正在开发一个大型项目 需要实现服务器发送的事件 我决定使用事件源传输 并从简单的聊天开始 目前客户端仅监听新的聊天消息事件 但项目将来会有更多事件 首先 我真的很关心服务器端脚本及其循环 其次 我不确定使用mySQL数据库作为存储 在
  • 如何提取 MongoError: E11000 找到重复键的错误消息?

    如何提取错误消息MongoError E11000发现重复的钥匙 我只想要错误本身消息而不是整个对象 我将用一个例子来解释这一点 在mongo shell db test insertOne id 1 insert a document t
  • 在过去 365 天窗口中执行运行总计的有效方法

    这就是我的数据框的样子 库 数据 表 df lt fread Name EventType Date SalesAmount RunningTotal Runningtotal prior365Days John Email 1 1 201
  • 仅第一次记录显示,除非强制处置

    我正在使用 vs 2017 写一个netcoreapp2 0库 并使用 UnitTest 项目对其进行测试 XUnit 和 NUnit 给出相同的结果 我注意到除非我强行处置我的Serilog记录器 只有第一行会出现在Seq 这是我的两堂课