问题标签 [serilog]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
260 浏览

c# - Serilog 的 CouchDB 接收器似乎没有使用 LogContext

我不确定如何将 Serilog 的 LogContext 与 CouchDB 接收器一起使用。

一个简单的例子来展示我当前的用法:

而我在 CouchDB Futon 中看到的: 测试

我的理解是,LogContext 会在所有 Serilog 日志中添加一个值为“hi”的“Track”字段,直到它被处理掉。但是,我没有看到这种情况发生。

0 投票
1 回答
1766 浏览

c# - 使用自定义属性冒泡异常并使用 serilog 记录

我遇到了一种情况,我认为重新抛出异常会很好,向它附加附加信息(例如在自定义异常中的属性中),当进一步捕获堆栈时,将使用表单中的附加信息进行记录Serilog 中消息模板的属性 - 最终目标是我可以过滤 Seq 中的这些属性。这种情况可能是一个警告,我需要重新考虑我的异常处理,但我想我会问这是否已经用 Serilog 完成了?推荐/不鼓励?

更新

这是一个示例场景:

使用 serilog 和 Seq,我们将“部门”属性应用于日志,以便部门可以轻松查看所有可能由其负责的异常。

现在这个场景的应用程序基本上做了两件事:

  • 第一步:查询数据。
  • 第 2 步:如果第 1 步中没有异常,请将其发布到其他地方。

在第 1 步的几层深处,有一个特殊的例外,我知道这是特定部门的责任。因此,我想在记录该异常时将部门属性应用于该异常,但同时将其进一步捕获到堆栈中,以便该异常阻止其他所有内容的继续。另外,我只想记录一次异常。

我目前的方法是使用可以保存日志属性的字典定义自定义异常:

因此,当我捕获一个异常时,我知道这是一个特定部门的职责,我将它作为 ExtPropertiesException 或作为继承它的异常重新抛出,将原始异常作为内部异常附加。

然后备份一般步骤所在的堆栈,我有一个问题:

这似乎正在做我需要的事情,但是在其他地方重复之前知道这是否是最佳实践会很棒。

我最初是在捕获异常时记录日志并应用属性,然后只返回 false 或 null 以指示失败并放弃未来的步骤,但是我发现单元测试很困难,因为我无法确定类型来自方法之外的错误。

谢谢

0 投票
1 回答
3002 浏览

c# - Serilog 或任何记录器不会从任务调度程序创建文件,而是从直接运行创建文件

我创建了一个简单的控制台应用程序,如下所示

从 Visual Studio 运行应用程序或从文件夹直接运行 exe 会生成日志文件。

但是通过任务计划程序运行没有生成文件。

为日志文件夹授予完全权限,但不知道为什么不通过调度程序生成文件?

0 投票
2 回答
1154 浏览

logging - 如何使用 ServiceStack.Logging ILog 记录消息相关 ID?

我对我现在使用的当前日志记录解决方案非常满意,它是由 NLOG 实现的 ServiceStack 接口。我使用的 NLOG 目标如下:

xsi:type="控制台"

xsi:type="调试器"

xsi:type="文件"

xsi:type="序列"

特别重要的是Seq,它是类固醇的日志接收器,是我的生命线,可以实时了解我的服务发生的事情。查询结构化日志的能力非常棒,以至于现在我想查询 Seq 日志以查找具有相同相关 ID 的所有消息,根据这篇文章,这可以通过丰富器实现:

使用 ServiceStack 接口,我看不到这样做的方法,而是必须通过使每个日志语句在消息中包含相关性 ID 来伪复制它。ie _log.Warn("CorrelationId:{0} Campaign => no trackingId found".Fmt(request.CorrelationId));

是否可以让correlationId 成为一等公民/财产,以便Seq 让我通过它查询?

基于@paaschpas 答案的更新

鉴于如果您在记录器接口上使用 xxxxFormat 方法(非常重要),您现在可以使用它并在序数位置提供参数(有点脆弱),例如

这将按 corrId 过滤的 Seq在一天结束时给你这个,我的朋友们足以满足我的需要。

0 投票
1 回答
2025 浏览

c# - Serilog 不会产生预期的 json

我有以下代码。

日志文件显示如下

日志文件输出中没有意义的部分是:

我期待这样的事情。

我做错什么了吗?

0 投票
1 回答
274 浏览

serilog - 如何在 Serilog.Sinks.Email 中使用 xml 指定 networkCredential 参数

我正在尝试使用 xml 设置此接收器 Serilog.Sinks.Email

由于networkCredential 实现了ICredentialsByHost,是否可以使用xml 来指定它?

0 投票
1 回答
1210 浏览

serilog - 除了 Console.Out 之外,还有 Serilog SelfLog 选项吗?

这是一个相当简单的问题。我只看到文档显示了 selflog 的一个选项,即到 Console.Out,如下所示。

这不是我计划从多个远程服务器登录的选项。有没有办法为文本文件指定名称和位置?Serilog 本身会以结构化的方式记录其调试信息吗?有什么方法可以使这个文本文件成为翻转文件?

非常感谢您的帮助!

0 投票
1 回答
1779 浏览

serilog - 当 Serilog [NotLogged] 属性应用于 NetworkCredential 对象时

给定以下类,我如何禁止 Serilog 记录 Credentials 属性?

理想情况下,我希望能够仅抑制凭据的“密码”属性。如果没有,我现在可以看到整个 Credentials 被压制。但是,当我按如下方式使用 Serilog 登录时,

[NotLogged] 属性被忽略,我清楚地看到凭据的所有属性,包括用户名和密码。我看到一个文档似乎表明如果我的 Credentials 属性被分解为 UserName 和 Password 属性,那么将 [NotLogged] 应用于 Password 可以工作。这是我使用“Serilog.Extras.Attributed”的唯一选择吗?非常感谢!

0 投票
1 回答
640 浏览

asp.net - Serilog.Extras.Web 的 ApplicationLifecycleModule 是如何自动注册的?

引用 Serilog Wiki:

ApplicationLifecycleModule 将自动启用...

好,太棒了。这是怎么回事?它没有在 web.config 的元素中列出,<modules/>并且在我的代码中的任何地方都没有引用它。那么,将它们连接在一起的魔力在哪里?

0 投票
1 回答
1602 浏览

asp.net-web-api - Serilog ElasticSearch 接收器在 WebApi 中不起作用

我在 Azure Worker Role 和带有 ElasticSearch 接收器的 WebApi 中使用 Serilog。

在 Worker 角色上一切正常。

在 WebApi 上,我尝试了 Trace & Email 接收器,它们工作正常。ElasticSearch 接收器根本没有记录。

这是我的配置:

如果我尝试在控制器中写入日志,我会将它们保存在 Trace 中,但 Trace 中没有。