问题标签 [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 投票
16 回答
134702 浏览

c# - 如何在 ASP.NET Core 中使用 ILogger 进行单元测试

这是我的控制器:

如您所见,我有 2 个依赖项, aIDAO和 aILogger

这是我的测试类,我使用 xUnit 进行测试,使用 Moq 创建模拟和存根,我可以DAO轻松模拟,但是ILogger我不知道该怎么做,所以我只是传递 null 并注释掉登录控制器的调用运行测试时。有没有办法测试但仍然以某种方式保留记录器?

0 投票
11 回答
89686 浏览

c# - 无法从 Microsoft.Extensions.Logging 解析 ILogger

我已经Main像这样配置了我的控制台应用程序

然后我尝试在另一个类中使用它

System.InvalidOperationException:'无法解析类型'Microsoft.Extensions.Logging.ILogger'的服务

我已经尝试过这里的解决方案,但它对我不起作用。

编辑 基于下面 Yaakov 的评论和这个 Github 评论,我可以通过这样做正确解决它

我本来希望一开始就这样做,BuildServiceProvider但看起来每次我想使用记录器(或创建我自己的 ILogger)时我都必须重复这个。

0 投票
1 回答
155 浏览

nlog - 如何从 NLog 3.1 获得 ILogger?

我有一个 dotnet 核心库,其中包含一个采用 Microsoft.Excentions.Logging.ILogger 的类。我需要从使用 NLog 3.1 的现有 .Net 4.7 应用程序中调用它。

是否可以从 NLog3.1 获得 Ilooger?

0 投票
4 回答
2704 浏览

c# - Net Core:启动类中的ILogger:封装在扩展方法中

我在Net Core中写了这个日志代码,有人提到“这可以封装在扩展方法中”。这是一种更简单的方法吗,最好在 Net Core 2.2 中编写?

启动.cs

0 投票
3 回答
3212 浏览

azure-functions - 不显示写入 ILogger 的 Serilog (Azure Functions V2)

我已安装 Serilog 并配置为将日志事件数据写入 MS SQL Server for Azure Function 中的表。

静态类本身写入的系统日志和日志出现在表中,但是当我尝试使用 Extensions.Logging.ILogger 时,即使我可以在 ILogger 中看到 Serilog 提供程序,消息也不会出现在表中。

Startup.cs 配置;

在 Azure Function 中创建 ILogger;

此外,将 ILogger 本身接收到 cons 中也不起作用..

奇怪的是只有系统日志被记录到表中;

在此处输入图像描述

并且 Serilog 提供程序已经存在于不工作的 ILogger 实例中;

在此处输入图像描述

0 投票
2 回答
246 浏览

asp.net - ASP.NET 单元测试 - 在单元测试中模拟 ILogger

我目前正在使用以下代码在我的单元测试控制器的构造器中模拟 ILogger:

我需要使用这个 Mock ILogger 来记录在各种单元测试中被断言的抛出异常。

例如:

我需要为模拟的记录器(_logger)添加 ArgumentNullException 检查。

实现这一目标的最佳方法是什么?

编辑:正在测试的控制器

0 投票
1 回答
481 浏览

asp.net-mvc - 从登录 Asp.net 核心中排除自定义异常类

有没有办法可以从日志系统中排除自定义异常类?我知道我可以按类别过滤掉,但我只想保留一个自制的异常类。

0 投票
1 回答
213 浏览

c# - 如何在调试器中捕获 ILogger.LogCritical 调用和中断?

当有人写Microsoft.Extensions.Logging.ILogger.LogCritical()电话时,肯定发生了一些严重的事情。我希望它在调试器中运行时会(记录关键和)中断。我已经尝试了如何覆盖现有扩展方法的答案,它需要使用特殊的命名空间。不过我希望大家可以LogCritical()自然使用,不用再仔细检查是调用原创LogCritical()还是我被困的。

我能想到的唯一方法是用我的替换后备日志库,并使用我的中断逻辑将调用重定向到日志库。但是这个工具仅限于指定的库。如果将来我想更改库,我需要实现另一个库。并实现它需要的所有无聊的接口,只是为了一些LogCritical()相关的破坏逻辑。

所以,我希望捕捉到一般性的ILogger.LogCritical()呼吁,而不是潜在的具体呼吁。这可能吗?

0 投票
1 回答
573 浏览

asp.net-core - 如何使用 ILogger 在我的 ASP.NET Core 应用程序的 nuget 包中记录 serilog 发出的消息

这应该很简单,但我找不到答案。

我有一个 ASP.NET Core (3.0) 应用程序。我使用Microsoft.Extensions.Logging /ILogger进行日志记录。

我还使用一个库(Fishbus:github / nuget)来与 Azure 消息总线连接。该库记录合适的消息,但使用Serilog来完成。所以开箱即用,不会记录任何消息。

如何将 Serilog“连接”到 Microsoft 日志框架,以便我可以看到库在做什么?

0 投票
2 回答
1291 浏览

azure - 使用 Application Insights 更改用于登录 ASP.NET Core 的 Instrumentation 密钥

是否有任何方法可以在运行时切换检测密钥,基于某些业务逻辑将日志目标定位到不同的 Application Insights 实例。

由于我们将 Application Insights 配置为在启动项目中用作 Logger,因此我找不到任何开箱即用的方法或破解此要求的解决方法。

如果我使用 Application Insight 作为遥测客户端,则可以轻松完成上述切换,因为在这种情况下,我可以在运行时向客户端提供不同的检测密钥,这与使用 ASP 的内置 DI 注入的 ILogger 不同.NET 核心。