问题标签 [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 回答
41 浏览

.net-core - .Net Core ILogger 将严重保存为错误

在我的测试 POST 操作中,我将 4 个不同的日志(信息、警告、错误和严重)保存到 Windows EventLog 中。我可以在事件查看器中看到所有四个,但其中一个级别错误。它标记为“错误”,但应标记为“严重”

在此处输入图像描述

程序.cs

应用设置.json

控制器

应用程序:REST API - .NET 5.0

0 投票
1 回答
486 浏览

c# - 使用 ILogger 和抽象类 .NET Core 进行依赖注入

我正在为我的 .NET Core 项目使用存储库模式。我有一个基础存储库:

}

然后我有从基类派生的实体特定存储库。例如:

然后我有一个存储库包装器,它实例化所有这些实体特定的存储库。

我想让我的所有存储库访问我的记录器,我通过依赖注入配置了它。但是,我的记录器似乎需要一种类型,例如

我以通用形式将记录器添加到基类中,在实体类中我做了 ILogger 的特定形式。但是,在存储库包装器构造函数中,我现在需要声明并注入所有这些不同类型的 ILogger。在构建存储库包装器的任何地方,我都需要将所有这些都添加为 args。

任何人都可以澄清注入 ILogger 的正确方法,并可以通过抽象类和派生类将其移动到“下游”吗?

0 投票
1 回答
143 浏览

configuration - 如何将 appsettings.json 中的设置注入 ILoggerProvider?

ILogger<T>由于一些特殊要求,我正在实施自定义,其中一个要求是Logging在项目的部分内有一个部分,appsettings.json其中包含该记录器的配置值。问题是,将这些设置注入记录器的正确方法(或好方法)是什么?我认为我应该首先在相应的设置中注入这些设置,ILoggerProvider并让提供者使用这些设置实例化一个记录器,但我对如何在提供者中正确注入这些值感到困惑。

到目前为止,我有这个Program.cs

,中的相关部分appsettings.json是:

,提供者实现如下:

0 投票
1 回答
95 浏览

c# - 应用洞察中自定义对象的属性在哪里

我有一个像这样的自定义对象。

这个对象是从系统外部填充的,在我的函数应用程序中,我试图将它记录到 App Insights 中。

当我看到应用洞察时,我在应用洞察中看不到“AppName”“服务”等属性。我在哪里可以找到它们?后来我也希望能够查询它们。但我在应用洞察中看到的都是这样的

在此处输入图像描述

0 投票
1 回答
275 浏览

dependency-injection - web-api启动时如何注入和使用Serilog(Ilogger)

我正在开发一个.NET core 3.1 控制台应用程序 (web-api)。我使用Serilog服务(它基本上是使用 Microsoft.Extensions.Logging)。Serilog 被注入并且可以在 FW Controllers 方法中使用。现在 - 我需要一些不同的东西 - 每当系统启动时(在关闭后),我需要发出一个 http post 请求 - 你可以在启动方法中执行ConnectionInitiator.Initiate()时看到它。在同一范围内(方法\类) - 我需要使用记录器来记录一些数据。现在 - 如果请求将通过控制器 - 记录器将可用(由DI)。长话短说——我需要以某种方式将 Ilogger 注入课堂或以其他方式使其可用。我尝试在启动时使用记录器,但这似乎是不可能的(因为.net core 3.0 - 如果我理解正确的话)查看我的代码:

程序.cs:

启动.cs

ConnectionInitiator.cs:

0 投票
1 回答
634 浏览

c# - 在托管服务中注入现有记录器

我在.net core 3.1中有这个项目。我已配置为使用 SeriLog 作为记录器。

其中一项服务MqttComunicationClient是将记录器注入使用 serilog 配置的构造函数。这里ILoggerMicrosoft.Extensions.Logging

通过这个类的Init方法,我正在初始化自定义编写的 MQTT API。

我的 MQTT Api 有处理程序,这些处理程序将在收到指定主题的消息时触发。

其中一个处理程序具有以下构造函数。

现在的问题是当我调试我MqttComunicationClient的记录器配置为SeriLog. 根据logger.LogInformation()此类内部使用的要求和配置,正在记录到日志文件。

在此处输入图像描述

ConnectionStatusHandler被称为对Logger的logger更改时。Microsoft.Extensions.Logging.Logger

在此处输入图像描述

类中使用的记录器ConnectionStatusHandler仅记录到控制台而不是文件中。

如何将相同的 serilog 配置logger对象MqttComunicationClient传递给ConnectionStatusHandler? 我需要一些额外的设置吗?我是一个新手,所以任何帮助表示赞赏。

编辑 配置serilog为记录器的代码

0 投票
0 回答
13 浏览

asp.net-core-3.1 - 如何从 Utils 类的 GetValue 方法传递 Ilogger 引用

我有一个ReaderILogger<Reader>作为构造函数参数,

现在我想使用类中Get的方法Utils。如何logger作为参数传递?目前我正在传递空值。

0 投票
2 回答
1033 浏览

c# - 从 Function App ILogger (C#) 在 Application Insights 中记录自定义对象

我有一个 C# .NET Core Azure Function App,我正在使用 ILogger 将日志发送到 Application Insights。到目前为止,这运作良好。

函数头:

public static void Run([TimerTrigger("0 30 * * * *")] TimerInfo myTimer, ILogger log, ExecutionContext context)

ILogger 用法:

log.LogInformation($"MyFunction trigger function executed at: {DateTime.Now}");

在 App Insights 中,我看到了包含默认信息的日志,例如它来自哪个函数应用程序,以及message包含上述字符串的哪个函数应用程序。

但是,现在我想记录一个自定义日志。我有一个IEnumerable<IDictionary<string, string>>并且我希望列表中的每个字典元素都是一个单独的日志。理想情况下,我可以有一个日志,其中每个字段都是字典中的一个键,其值是相应的值。或者,我可以在日志中使用某种 customDimensions 字段,这将是一个包含列表中 1 个字典中的所有键值对的对象。

目的是使日志在 Kusto 中易于查询。我想避免在 App Insights 中查询它们时解析它们。

笔记:

  • 由于我已经将 ILogger 用于现有日志记录,有没有办法使用 ILogger 接口进行上述对象日志记录?
  • 如果没有,我如何使用不同的记录器记录上面提到的对象?

我查看了许多其他类似的帖子,但似乎没有一个得到完全回答。

0 投票
2 回答
382 浏览

asp.net - ILogger 日志记录未显示在 Azure Application Insights 中

我正在设置一个新的 Web 应用程序以通过 Application Insights 进行日志记录。我已经安装了 AI,并且看到了所有预期的遥测数据(服务器请求、失败的请求等),但没有通过 ILogger 发送日志记录。我已经查看了我可以在 SO 上找到的所有类似问题,但没有一个能解决我的问题。

我正在使用 Microsoft.ApplicationInsights.AspNetCore nuget 包的 .NET 5 和 2.17.0 版(最新稳定版)。连接字符串和检测密钥显示正确。我尝试在 TelemetryConfiguration 中打开开发人员模式。我正在尝试记录每个级别的日志,并且我的代码在功能上与我找到的所有示例相同。

启动.cs/ConfigureServices: 在此处输入图像描述

控制器: 在此处输入图像描述 在此处输入图像描述

我将 ApplicationInsights 的默认 LogLevel 设置为“Trace”:

在此处输入图像描述

VS 中的输出窗口显示,当我登录时,正在发送跟踪遥测:

显示 AppTraces 遥测的 VS 输出窗口

但是我在 Application Insights 中看不到任何日志记录!我完全被难住了。任何有关解决此问题的帮助将不胜感激。谢谢!

0 投票
1 回答
84 浏览

.net-5 - Rollbar 日志在 .Net(core) 5.0 中不起作用

我有.Net core 5.0 api,我正在尝试添加日志,但不知何故它不起作用。下面是我的设置。

这是我的控制器。

公共类 TestController : ControllerBase { 私有只读 IRepositoryWrapper _repositories; 私有只读 Rollbar.ILogger _logger;私有只读IMapper _mapper;

它给了我“无法解析 Rollbar.ILogger 类型的服务”的错误。我什至没有在任何文档中看到处理这种情况的方法。任何帮助将非常感激。