问题标签 [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.
c# - 使用 ILogger 和抽象类 .NET Core 进行依赖注入
我正在为我的 .NET Core 项目使用存储库模式。我有一个基础存储库:
}
然后我有从基类派生的实体特定存储库。例如:
然后我有一个存储库包装器,它实例化所有这些实体特定的存储库。
我想让我的所有存储库访问我的记录器,我通过依赖注入配置了它。但是,我的记录器似乎需要一种类型,例如
我以通用形式将记录器添加到基类中,在实体类中我做了 ILogger 的特定形式。但是,在存储库包装器构造函数中,我现在需要声明并注入所有这些不同类型的 ILogger。在构建存储库包装器的任何地方,我都需要将所有这些都添加为 args。
任何人都可以澄清注入 ILogger 的正确方法,并可以通过抽象类和派生类将其移动到“下游”吗?
configuration - 如何将 appsettings.json 中的设置注入 ILoggerProvider?
ILogger<T>
由于一些特殊要求,我正在实施自定义,其中一个要求是Logging
在项目的部分内有一个部分,appsettings.json
其中包含该记录器的配置值。问题是,将这些设置注入记录器的正确方法(或好方法)是什么?我认为我应该首先在相应的设置中注入这些设置,ILoggerProvider
并让提供者使用这些设置实例化一个记录器,但我对如何在提供者中正确注入这些值感到困惑。
到目前为止,我有这个Program.cs
:
,中的相关部分appsettings.json
是:
,提供者实现如下:
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:
c# - 在托管服务中注入现有记录器
我在.net core 3.1中有这个项目。我已配置为使用 SeriLog 作为记录器。
其中一项服务MqttComunicationClient
是将记录器注入使用 serilog 配置的构造函数。这里ILogger
是Microsoft.Extensions.Logging
通过这个类的Init
方法,我正在初始化自定义编写的 MQTT API。
我的 MQTT Api 有处理程序,这些处理程序将在收到指定主题的消息时触发。
其中一个处理程序具有以下构造函数。
现在的问题是当我调试我MqttComunicationClient
的记录器配置为SeriLog
. 根据logger.LogInformation()
此类内部使用的要求和配置,正在记录到日志文件。
当ConnectionStatusHandler
被称为对Logger的logger
更改时。Microsoft.Extensions.Logging.Logger
类中使用的记录器ConnectionStatusHandler
仅记录到控制台而不是文件中。
如何将相同的 serilog 配置logger
对象MqttComunicationClient
传递给ConnectionStatusHandler
? 我需要一些额外的设置吗?我是一个新手,所以任何帮助表示赞赏。
编辑
配置serilog
为记录器的代码
asp.net-core-3.1 - 如何从 Utils 类的 GetValue 方法传递 Ilogger 引用
我有一个Reader
类ILogger<Reader>
作为构造函数参数,
现在我想使用类中Get
的方法Utils
。如何logger
作为参数传递?目前我正在传递空值。
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 接口进行上述对象日志记录?
- 如果没有,我如何使用不同的记录器记录上面提到的对象?
我查看了许多其他类似的帖子,但似乎没有一个得到完全回答。
asp.net - ILogger 日志记录未显示在 Azure Application Insights 中
我正在设置一个新的 Web 应用程序以通过 Application Insights 进行日志记录。我已经安装了 AI,并且看到了所有预期的遥测数据(服务器请求、失败的请求等),但没有通过 ILogger 发送日志记录。我已经查看了我可以在 SO 上找到的所有类似问题,但没有一个能解决我的问题。
我正在使用 Microsoft.ApplicationInsights.AspNetCore nuget 包的 .NET 5 和 2.17.0 版(最新稳定版)。连接字符串和检测密钥显示正确。我尝试在 TelemetryConfiguration 中打开开发人员模式。我正在尝试记录每个级别的日志,并且我的代码在功能上与我找到的所有示例相同。
我将 ApplicationInsights 的默认 LogLevel 设置为“Trace”:
VS 中的输出窗口显示,当我登录时,正在发送跟踪遥测:
但是我在 Application Insights 中看不到任何日志记录!我完全被难住了。任何有关解决此问题的帮助将不胜感激。谢谢!
.net-5 - Rollbar 日志在 .Net(core) 5.0 中不起作用
我有.Net core 5.0 api,我正在尝试添加日志,但不知何故它不起作用。下面是我的设置。
这是我的控制器。
公共类 TestController : ControllerBase { 私有只读 IRepositoryWrapper _repositories; 私有只读 Rollbar.ILogger _logger;私有只读IMapper _mapper;
它给了我“无法解析 Rollbar.ILogger 类型的服务”的错误。我什至没有在任何文档中看到处理这种情况的方法。任何帮助将非常感激。