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

c# - 如何实现 ILogger 以将消息发送到 SignalR Hub?

我想构建一个显示最新日志消息的 LogView。所以我建立了一个非常简单的设置,但我在依赖注入中失败了。

这是我的实现尝试。我跳过了非关键部分。

我的问题基本上是我无法注入IHubContext并且我不知道如何解决这个问题

0 投票
1 回答
1009 浏览

asp.net-core - 使用 ILoggerProvider 基于 .NetCore 2.2 中的环境进行日志记录

我正在研究.Net Core 2.2 日志机制。虽然我正在尝试基于环境的日志记录。因此,我创建了两个具有各自环境的新 appSettings.json 文件以及解决方案中存在的 appSettings.json。一个用于开发,另一个用于生产环境。

appsettings.Development.json

appSettings.Production.json

更改了 StartUp.cs 文件

记录方法

和launchSettings.json

我了解特定于环境的 appSettings 将具有最高优先级。我有两个问题

1) 是否发生特定于环境的日志记录?如果是,那么上述逻辑的变化可能是什么。

2)当我在DemoLoggingApplication配置文件上以开发模式运行应用程序时。我可以看到所有的Information,Error & Critical日志。

但是,当我将ASPNETCORE_ENVIRONMENT值从更改DevelopmentProductionfor DemoLoggingApplicationprofile 并运行应用程序时,我可以再次看到Error&类型的日志Critical。因为,我已经设置该Console提供者应该只显示Critical类型为Microsoft类别的日志。我Errors也被显示了日志。

虽然我已经阅读了 Microsoft 文档,但我无法理解优先级。谁能详细解释一下为什么我会同时看到这两个日志。我是否缺少任何理解。请帮我。

提前致谢


在 Bob 的回答之后更新了问题 它在更改 appsettings.json、appsettings.Development.json 和 appSettings.Production.json 后工作

appSettings.json

appsettings.Development.json

appSettings.Production.json

现在,当我将环境更改为 时Development,我可以登录,Information但只有在将Default类别添加到开发和生产之后。

我只是想知道为什么会出现这种行为?appsettings.json -> Logging当我们进行开发和生产设置时,进行维护会产生什么影响。

谢谢

0 投票
2 回答
636 浏览

azure - 写入以登录 Azure Function

这是我拥有的代码的胆量。我想写入日志以进行故障排除。它不喜欢其他方法。我看到了一些例子,他们讨论了如何实现这一点,但我找不到真正的代码来尝试。

我正在门户中编写 Azure 函数。

非常感谢任何帮助。

0 投票
1 回答
752 浏览

azure-application-insights - Net Core 3 ILogger 依赖跟踪 AppInsights

我将 ILogger ( Microsoft.Extensions.Logging) 与应用程序洞察一起使用。我想知道在使用时BeginScope()如何自动跟踪所有依赖项,如果可能的话?

例如,这段代码:

这会将Reference字段记录为跟踪上的自定义维度,但是,依赖项条目没有任何自定义维度。这必须手动完成还是我错过了什么?

在此处输入图像描述

应该详细说明,这些 ^^ 未附加到跟踪的依赖项条目,我正在使用托管服务并通过以下方式连接应用程序洞察力services.AddApplicationInsightsTelemetryWorkerService()

0 投票
2 回答
2103 浏览

c# - Application Insights - ILogger 参数呈现为自定义维度中的对象名称

当作为参数传递给 ilogger 时,对象在 Application Insights 自定义维度中呈现为字符串(对象的名称)。未显示实际值。

注册 Application Insights

新日志

结果

在此处输入图像描述

我不想对每个日志都这样做:

我尝试为应用程序洞察创建一个中间件,但该值仍然是对象的名称..

在此处输入图像描述

为什么参数不呈现为 json?

编辑

这好像是

有效但无效

0 投票
1 回答
3739 浏览

c# - C# ILogger 不打印控制台输出

我已将 vs 2019 用于控制台应用程序(dotnet core 3.1),

这个代码:

它不会在控制台上打印任何内容,为什么?

0 投票
1 回答
1202 浏览

unit-testing - 无法测试 ILogger与 NSubstitute 一起收到

我有一个 .Net Core 3 应用程序,并试图在我的方法中测试对 ILogger 的调用:

在 SO 和博客上找到答案后,我知道我必须测试接口方法,而不是扩展方法,所以我有这个测试:

但是,这不起作用,我收到此错误:

我究竟做错了什么?

netcoreapp3.0 / Microsoft.Extensions.Logging 3.1.2 / NSubstitute 4.2.1

更新:我已经尝试过匹配Arg.Any<>()并得到相同的结果:

更新 2:我使用 Moq 尝试了相同的测试并得到相同的结果:

结果:

0 投票
1 回答
658 浏览

asp.net-core - 有没有办法在 .net core ILogger 接口中记录异常数据字典中的值?

如果我在数据中添加了一些键/值对来记录异常,则不会记录这些值。在某些情况下,它们对诊断问题非常有帮助,但我看不到任何配置方法。

例如,以下控制台应用程序:

结果被记录到控制台:

数据字典中没有值的符号。

如果我在 ASP.NET Core 应用程序中登录到 Azure Application Insight,情况也是如此。

有什么办法可以让这些数据输出到日志中?

0 投票
1 回答
939 浏览

azure - ApplicationInsights 不考虑 json 配置的日志级别

鉴于此 appsettings.json

而这来自startup.cs

为什么在我的 AI 输出中仍然只看到严重、错误和警告?

例如来自控制器的任意日志

根据这里的微软文档

当您通过以下任一方法打开常规 Application Insights 监视时,ApplicationInsightsLoggerProvider 在 Microsoft.ApplicationInsights.AspNet SDK 版本 2.7.1(及更高版本)中默认启用:

  • 通过调用 UseApplicationInsights 扩展方法 onIWebHostBuilder(现已过时)
  • 通过调用 IServiceCollection 上的 AddApplicationInsightsTelemetry 扩展方法

所以我对为什么没有输出调试/信息跟踪有点迷茫。

appsettings.development.json 中没有覆盖或日志记录设置。

我正在使用 AppInsights SDK 2.13.1。

ASP.NET 核心 3.1。

0 投票
1 回答
1036 浏览

.net-core - 在 Startup 中创建 ILogger 实例

我正在开发带有 Polly 重试和断路器的 Azure Function App .net core 3.1。到目前为止,我使用构建器将详细信息记录到 App Insights 没有问题,因为它在执行如下所示之前不会被初始化

其中 HTTPTrigger1 是用于测试的函数应用名称。现在我需要扩展现有的功能来检查电路是否损坏,以便我可以运行另一组业务功能。对于这里提到的https://github.com/App-vNext/Polly#circuit-breaker,我添加了 CB 的单例实例以确保正在读取断路器状态。

但是在第二个实现中获取记录器实例时出现错误。正如我在 MS 文档中检查的那样https://docs.microsoft.com/en-us/azure/azure-functions/functions-dotnet-dependency-injection#caveats说不要在启动期间记录消息,即使我正在创建例如,它仍然会引发错误(后续调用所需的实习生)。无论如何我可以在这里实现日志记录吗?