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

azure-functions - 在 Azure 函数日志中输出 JSON

我们希望将结构化日志数据从我们的 Azure Functions 发送到事件中心。所以我设置了 Serilog 以登录到控制台并包含我想要的所有信息。但是现在我来在 Azure 中尝试这个,我所有来自 Serilog 的漂亮的 Json 格式数据都被忽略了——只显示标准的 ILogger 输出:(

这是我在Startup.ConfigureServices.

然后我在我的函数中使用 ILogger 进行日志记录:

在本地,我得到了两个日志——正常文本C# HTTP trigger function processed a health request.,但也得到了预期的大 JSON blob。但是,在 Azure 中运行时,当我查看 Log Stream 时,我只看到普通的文本日志 :(

我可以在文件中看到预期的输出 - 但我希望能够使用诊断设置来导出日志 - 我无法在那里选择日志文件!:(

0 投票
1 回答
2257 浏览

asp.net-core - 如何实例化实现 Microsoft.Extensions.Logging.ILogger 的记录器记录到 Serilog 记录器

Microsoft.Extensions.Logging.ILogger<out TCategoryName>当我无法通过标准 ASP.NET Core 依赖注入实现时,如何实例化一个将日志输出到我的 Serilog 记录器的记录器实现?

我在我的 ASP.NET Core 项目中配置了 Serilog,并且标准的依赖注入设置正确地将记录器注入到我的控制器和服务中。这些记录器的输出已正确写入我的 Serilog 配置中指定的文件。

但是,我需要将记录器传递给在 期间实例化的对象Startup.ConfigureServices(...),因此我无法通过 DI 解决它。我可以实例化 a Serilog.Logger,但由于我想避免在我的配置代码之外直接依赖于 Serilog,我不得不使用我自己的适配器。我希望有一些现有的适配器可以使用Microsoft.Extensions.Logging.ILogger<out TCategoryName>,但我不知道该怎么做。

确切的用例是将记录器注入到 aDbCommandInterceptor中,我正在尝试在其中执行此操作Startup.ConfigureServices(...)

0 投票
2 回答
2851 浏览

asp.net-core - .Net Core Logging Dependency Injection - 解决 ILogger / ILogger`1 - 勾号是什么意思?解析类型可能吗?

我正在使用 .Net Core 3.1 XUnit 项目。

我创建了一个 SerivceCollection 并调用 AddLogging 扩展方法。然后我可以使用 LoggerFactory / ILoggerFactory 创建一个 ILogger 实例,当我调试时,我的 ServiceCollection 可以为这种类型提供一个 ServiceDescriptor:

我很好奇该刻度线在类型名称中的含义以及是否可以在不使用 LoggerFactory 的情况下解析 ILogger 实例。

以下是解决 ILogger`1 的几次失败尝试。最后一次调用 CreateLogger 有效。

0 投票
1 回答
548 浏览

asp.net-core - .Net Core 自定义记录器循环依赖注入参考/无限循环

我试图编写一个客户 ILogger / ILoggerProvider,它依赖于一个依赖于 ILogger 的服务:) 这给我留下了循环引用和无限循环。

如何修改此代码以避免循环引用?

如果可能的话,我想保持结构相似,而不是用通用主机和 IHostBuilder 重写。

0 投票
2 回答
211 浏览

c# - 无法在 Nunit 中模拟 ILogger

Net core 和 NUnit 测试用例。我的控制器如下。

然后在我的单元测试用例下方。

上面的代码给出了错误

Moq.MockException : ILogger.Log(LogLevel.Information, 0, ListTest : 成功获取结果, null, Func<FormattedLogValues, Exception, string>) 调用失败,模拟行为严格。模拟上的所有调用都必须具有相应的设置。

有人可以帮我解决这个问题。任何帮助将不胜感激。谢谢

0 投票
0 回答
170 浏览

asp.net-core - IServiceScopeFactory.CreateScope 不保留日志范围

我有一个应用程序,我通过它创建一个范围IServiceScopeFactory.CreateScope
从这个范围,我首先创建一个范围,ILogger<T>然后将一个范围添加到这个记录器。

在此之后,我创建了各种服务(通过创建的范围),每个服务我都想保留我创建的日志记录范围
这最初工作得很好,我可以看到服务构造函数中记录的消息的范围。
但是,在以后的使用中,该服务拥有的记录器已经失去了作用域。
它没有被释放,IServiceScope 没有被释放,它只是消失了。
我的前提似乎是合理的,因为它在初始构造函数中有效,但在此过程中不知何故失去了它,我不明白为什么会这样。

0 投票
2 回答
1853 浏览

c# - 使用 Azure Functions 进行 ILogger 依赖注入

所以我正在尝试使用依赖注入设置 ILogger,但遇到了一些麻烦。

在我的startup.cs文件中,我有一些看起来像这样的东西:

然后我尝试将该记录器提供给我自己的类(它就像 ILogger 库的包装器)

因此,在我的 Azure 函数中,LoggingWrapper被注入内部,但它不记录任何内容。每个函数附带的普通 ILogger 仍然有效,但我想知道为什么我的包装器没有记录任何内容。

Logging Wrapper 是一个采用 ILogger 方法并使用它来创建自己的日志记录方法的类。例如loggingWrapper.logInformation("string"),一个方法会环绕 `ILogger.

我将它注入到我的其他类中,如下所示:s.GetService<ILoggerFactory>()

提前感谢所有帮助!

0 投票
2 回答
2001 浏览

c# - 如何在没有依赖注入的情况下使用 ILogger?

净核心项目。我正在使用 Azure 应用程序洞察力进行日志记录。我在 services.AddApplicationInsightsTelemetry(); 中添加了以下行 在我的startup.cs中。在控制器和业务层中,我将通过依赖注入获得 ILogger。但我想出了一些不同的东西。我创建了 ApiExceptionFilter,代码如下所示。

但在这里我不能做类似的事情

如果我进行上述更改,那么

在上面的代码中 [ApiExceptionFilter] 它会要求我传递 ILogger 参数。

我只是想知道在 ApiExceptionFilter 中添加 ILogger 的正确方法是什么。有人可以帮助我吗?任何帮助,将不胜感激。谢谢

0 投票
2 回答
360 浏览

c# - 在 C# ILoggerFactory 中使用 ILogger 对静态方法进行单元测试为 Null

每个人,

我正在尝试对我的代码进行单元测试,但是我无法让 ILoggerFactory 工作

这是我的单元测试代码(可能不正确):

这是我要测试的类的代码(我只留下了失败的代码行)

这是错误所在的帮助类的代码:

就在它运行的那一行:

LoggerFactory 为空。

我在互联网上做了很多研究,但是这一切都导致了非静态的类信息。

如果它很重要,它是一个 Botframework 项目。

任何帮助,将不胜感激。

提前致谢。

0 投票
2 回答
350 浏览

azure-functions - 记录器Azure 函数的 .LogMetric 未将消息记录到 Application Insight

我在 .net core 3.x 上使用 Azure 函数 v3,ILogger<T>它是通过相应类 T 的依赖注入创建的IServiceProvider like ILogger<T> _log = _log = serviceProvider.GetService<ILogger<T>>();

除了_log.LogMetric()所有其他日志消息(跟踪、信息、错误、异常等)都被推送到 Application Insight。我检查了事务搜索的跟踪部分以及日志的跟踪和自定义指标。

甚至 host.json 文件日志记录配置似乎也是正确的。那么我做错了什么?