问题标签 [ilogger]

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 投票
2 回答
1891 浏览

azure - Azure Functions - 注入的 ILogger日志没有出现

FunctionsStartup在 Azure Functions 项目中使用来设置 IoC 绑定。但是,当我在 Azure 中运行它时,从注入创建的任何日志ILogger<T>都不会出现。

我用一个全新的示例项目创建了一个非常精简的版本来演示这一点......

https://github.com/dracan/AzureFunctionsLoggingIssue

这个输出是...

请注意日志条目“此日志未出现!” MyClass.DoSomething()没有出现。

0 投票
1 回答
279 浏览

c# - 使用 NSubstitute 断言收到的 ILogger 调用不匹配

ILogger当测试的方法抛出异常时,我在为调用匹配执行测试时遇到了麻烦,我真的不明白是什么原因。

这看起来像我的测试方法:

这就是我测试过的方法的样子:

测试失败,结果如下:

你们能帮我理解我在这里做错了什么吗?

谢谢

0 投票
0 回答
117 浏览

logging - 记录器在 Cloudwatch 上创建空日志

我想使用 AWS .NET Logger 和 Cloudwatch 记录对我的 .NET Core API 的请求和响应。我的 .NET Core 应用程序是使用 Elastic Beanstalk 部署的。我已经安装了 AWS.Logger.AspNetCore 包并在我的 StartUp.cs 中设置了记录器,如下所示

在我的 appsettings.json 中,我有以下配置:

我还为我的 Elastic Beanstalk 角色附加了适当的策略,以创建、更新和获取日志组和流。此配置在本地工作时(在 Visual Studio 中)正常工作,但在部署时会在 Cloudwatch 上创建空日志。

0 投票
1 回答
18783 浏览

c# - 将 Serilog 与 Microsoft.Extensions.Logging.ILogger 一起使用

我使用 Host 创建了一个 .NET Core 3.1 项目,该 IoC 容器IServiceCollection使用ILogger<T>来自Microsoft.Extensions.Logging. 我现在需要实现更高级的日志记录并决定使用 Serilog。

我认为从 .NET 内置记录器切换到 Serilog 会轻而易举。但令我惊讶的是,Serilog 使用的是它自己的ILogger界面 - 太糟糕了!所以现在我需要更新所有地方以使用 Serilog ,或者使用 .NET Core接口ILogger实现 Serilog 。ILogger<T>

我的问题是——真的不能在 ILogger 界面中使用 SerilogMicrosoft.Extensions.Logging吗?会聪明很多!

0 投票
1 回答
269 浏览

unit-testing - Microsoft.Extensions.Logging.Abstractions 更新后 Moq 和 Microsoft.Extensions.Logging.ILogger 单元测试失败

在将 Microsoft.Extensions.Logging.Abstractions 从 Version=2.0.0.0 更新到 Version=3.1.1.0 后,我的一些单元测试失败了。

我有一个 ILogger 被嘲笑为:

并且已经进行了验证对 Log() 的调用的单元:

在更新之前,IReadOnlyList<KeyValuePair<string, object>>类型是 type FormattedLogValues

在 v2 中,FormattedLogValues 是一个公共类,但在 v3.1.1 中,FormattedLogValues 是一个内部只读结构。此更改似乎与测试失败有关。

我已经尝试将 It.IsAny 用于第三个参数,而不是 IReadOnlyList 或 FormattedLogValues,但我没有任何运气。

任何人都知道如何更改此测试代码以使测试通过?我可以从调试信息中看到对 Log 方法的调用按预期进行,我只是无法弄清楚如何使用内部只读结构参数正确设置这些模拟。

这是一个 .NET Core 2.2 项目。

0 投票
1 回答
7487 浏览

file - Serilog 未写入从控制台 CORE 3 应用程序中的 appsettings.json 加载的配置的文件

Serilog 使用硬编码 LoggerConfiguration 写入文件,但无法从 appsettings.json 加载的配置中工作

这是应用程序代码

这是 appsettings.json

有趣的是,控制台接收器的部分运行良好,只是文件有问题。如何强制 serilog 写入文件?

0 投票
1 回答
4053 浏览

c# - ILogger 未将 TRACE 和 DEBUG 消息写入目标

我正在我们的 ASP.NET Core 3 应用程序中设置一些日志记录,使用 ILogger (Microsoft.Extensions.Logging) 和 NLog 来启用对文本文件的写入。

问题是,ILogger 不写入 TRACE 和 DEBUG 级别的消息。到文本文件或 Visual Studio 输出窗口。使用 NLog.Logger 适用于所有级别。这个问题也存在于一个默认的 ASP.NET Core 3 Web API 应用程序中,它从他们的官方教程中设置了 NLog。以下是我拥有的相关代码。

程序.cs

nlog.config

应用设置.json

WeatherForecastController.cs

日志文件中的输出

现在有人可以告诉我为什么 ILogger 不写 TRACE 和 DEBUG 消息吗?我已经在谷歌上搜索了几个小时,据我所知,一切都应该正确设置(?)。

谢谢!

0 投票
2 回答
244 浏览

azure - Azure Functions v2 中 ILogger 的 F# 错误

我有一个相当大的项目,使用 F# 编写的 Azure Function v2。我在 C# 中创建了一个库,在构造函数中我可以传递一个ILogger log. 如果我只在 Azure Function 项目中添加这个库,每个函数都会返回一个错误。

Microsoft.Azure.WebJobs.Host:无法将参数“日志”绑定到 ILogger 类型。确保绑定支持参数类型

在此处输入图像描述

在 F# 中,我尝试添加

我在GitHub 上看到了一些帖子,或者其他人有同样问题的其他帖子。显然,解决方案是将 Azure 函数从 v2 更新到 v3,但我现在不能这样做。

有什么解决办法吗?

更新

.fsproj是_

0 投票
0 回答
549 浏览

c# - NLog 不打印来自 aspnet 请求标头的值

我在让 NLog 打印来自特定请求标头的值时遇到了一些麻烦——在x-correlation-id请求开始时分配的标头。实际上我根本无法让 NLog 打印任何标题。

在我的nlog.config我有以下布局和目标。标题中包含的 guidx-correlation-id应在日志级别之后立即打印。

日志文件的示例输出:

任何帮助表示赞赏。


编辑1: 我现在已经进一步研究了这个问题。正如@RolfKristensen 提到的,我已经打开了内部 NLog 日志。我在那里看到了这条特定的行:

据我了解,该服务提供商正在HttpContextHttpContext. 我似乎无法找到任何解决方案。谷歌在这方面对我帮助不大。


编辑2:好的。显然,这是由于x-correlation-id标头应用于请求的时间与我尝试访问 NLog 布局中的标头时有关。不知道这是如何工作的以及为什么,但这是我能看到的唯一解释。我发现我可以通过调用${aspnet-request-headers}我的 NLog 布局来打印所有当前的请求标头。但仍然无法打印x-correlation-id标题(因为它尚未应用)。

幸运的是,我在 CorrelationId 服务初始化中找到了一个很好的解决方法。通过将 CorrelationId 添加到类似的日志ConfigureServices()记录Startup.cs范围

我可以通过调用 NLog映射诊断逻辑上下文 (MDLC)上的项目名称“CorrelationId”(默认)从日志记录范围中获取 CorrelationId 并将其打印到我的布局中,例如${mdlc:CorrelationId}

这没有回答我原来的问题。但它给了我一个解决方法,我现在可以在每个请求上将 CorrelationId 打印到我的日志文件中。

0 投票
2 回答
721 浏览

c# - 依赖注入到 ILogger 对象

我有一个服务器端 Blazor 应用程序,我在其中实现 ILogger 对象以捕获未处理的应用程序错误并记录它们。您可以在这里的回答中看到我是如何做到的: Processing unhandled exceptions in ASP.NET Core 3.1

我想做的是使用依赖注入将对象传递到我的 ILogger 对象中,这样它就可以获得更多信息来记录异常。但我无法弄清楚如何做到这一点。我尝试将 DI 对象添加到 ExceptionLoggerProvider 和 ExceptionLogger 对象的构造函数,但我无法让它工作。有人可以提供一个如何做到这一点的例子吗?

例如,我创建了一个 LoginAccount DI 类,它跟踪我设置的登录用户,我希望将其注入到 ILogger 对象中。