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

moq - 如何在 netcore 3.0 上模拟 ILogger.LogXXX 方法

到目前为止,我们一直在按照这种方法ILogger.LogXXX来模拟调用。

不幸的是,在将项目更新到 .net core 3.0 之后,如果您使用严格的模拟 (Moq),它总是会抱怨没有相应的设置:

不幸的是,我不能FormattedLogValues像这样简单地更改对象:

这不起作用,因为FormattedLogValues是内部的。

我总是可以更改模拟策略(从严格到宽松),但我更愿意保持原样(严格)。那么,关于如何解决这个问题的任何线索?

谢谢。

0 投票
0 回答
43 浏览

botframework - 如何将 ILogger 传递给对话框

我正在使用 BotFramework v4 进行开发。我有注入 ILogger 的 MainDialog。我需要将 ILogger 值传递给要添加到堆栈中的其他对话框,但无法弄清楚如何去做。我在下面编写了代码,但它没有按我的需要工作。

在 GettingToKnowYou 对话框中

在 GettingToKnowYouDialog 中记录的任何内容都将 MyCompany.MyProject.MainDialog 显示为记录器,而不是 MyCompany.MyProject.GettingToKnowYouDialog

0 投票
2 回答
2128 浏览

c# - 使用 Moq 和 xUnit 模拟和测试 LogError 消息

我有一个类级别的 ILogger,它是在构造函数中使用 ILoggerFactory 设置的。然后在该类中的方法中使用记录器,这非常有效。

我正在努力研究如何模拟 ILogger 和 ILoggerFactory 以便我可以对 LogError 消息进行单元测试。谁能给我看一个例子?

我正在使用 xUnit 和 Microsoft.Extentions.Logging 进行登录


0 投票
3 回答
2406 浏览

c# - 为 ASP.NET 核心创建基本控制器以进行日志记录,但我的构造函数签名有问题?

我想有一个简单的方法让所有的 web api 控制器自动记录他们正在做的事情而无需明确告诉它。为什么这是不正确的?另外,有没有更好的方法?

严重性代码 描述 项目文件行抑制状态错误 CS7036 没有给出与 BaseController<RfReportTypeController>.BaseController(IAppLogger<RfReportTypeController>) PWDRS.WebAPI C:\Users\M3MAH02\source\repos\PWDRS\PWDRS\PWDRS.WebAPI\Controllers所需的形式参数“logger”相对应的参数RfReportTypeController.cs 17 活动

0 投票
0 回答
1046 浏览

c# - 通过 ApplicationInsights 中的 ILogger 对大型对象进行结构化跟踪日志记录

我们正在尝试通过 记录大型数据对象ILogger.Log,但正在修剪我们发送到 ApplicationInsights 的数据。我们尝试记录的数据对象是来自集成源的请求/响应,用于在开发期间进行诊断。不用说,请求/响应会变得非常大。

我们的第一次尝试是从请求/响应中读取内容作为字符串,然后通过ILogger.Log. 但是,我们很快意识到内容被修剪了。经过进一步调查,我们发现 ApplicationInsights 属性值字符串长度限制为 8192 字节 ( https://github.com/MicrosoftDocs/azure-docs/blob/master/includes/application-insights-limits.md )。

我们的下一个尝试是反序列化请求/响应并将其作为对象 (JToken) 通过ILogger.Log. 我们希望 ApplicationInsightsLoggingProvider 能够以更结构化的方式记录对象,从而完全跳过 8192 字节的属性值字符串长度限制。然而,不幸的是,这让事情变得更糟。请求/响应仍以字符串形式记录在 ApplicationInsights 中,但现在采用每个字符占用两个字节而不是一个字节的格式。基本上将我们的日志记录能力减半。

附加代码是我们当前的实现。我们正在通过DelegatingHandler. 它HttpClient在 ASP 之后LogicalHandler通过自定义插入到传出管道中IHttpMessageHandlerBuilderFilter。我们的DelegatingHandler使用LoggerMessage模式 ( https://docs.microsoft.com/en-us/aspnet/core/fundamentals/logging/loggermessage?view=aspnetcore-3.0 ),并且仅在日志级别设置为跟踪时才会记录。当前的实现是第二版,我们尝试将请求/响应提取的 JSON 字符串反序列化为 JToken(第 107 行)并通过ILogger.Log. 如果反序列化失败,它将回退到我们的版本一等效实现,原始字符串将被发送到ILogger.Log.

我们正在使用来自Microsoft.ApplicationInsights.AspNetCoreversion的 ApplicationInsightsLoggingProvider 2.8.2

所以问题就变成了:我们如何通过 ILogger 将大型对象记录到 ApplicationInsights,最好是结构化格式,以便我们可以使用 kusto 对其进行查询?

0 投票
2 回答
3536 浏览

c# - 如何使用 DI usinq autofac .net 框架注册 ILogger(Microsoft.Extensions.Logging)

我在 .net 框架项目中使用 Microsoft.Extensions.Logging 的 ILogger。现在我想在容器中注册 ILogger 但我不能。所有答案都是关于 .net 核心的。我试试

我的课也是

di 是正确的,因为其他服务已正确注入。当我在构造函数中包含记录器时,我收到消息尝试创建类型为“TestController”的控制器时发生错误。确保控制器有一个无参数的公共构造函数。

0 投票
1 回答
84 浏览

c# - 如何在外部程序集中使用 Azurefunction 提供的 ILogger 进行日志记录

在 azure function 中,我们获取 ILogger 实例进行记录,效果很好。我们通过在功能应用程序设置中配置检测键将日志推送到应用程序洞察力。

但是我无法将此 ILogger 传递给其他程序集,此函数是从解决方案中引用的。如何通过此 azure 函数在外部程序集中记录信息。

有人在这工作吗?

0 投票
3 回答
3020 浏览

c# - 如何通过 ILogger 将日志写入 EventLog在 Asp.net 核心?

我遵循此文档Logging in .NET Core 和 ASP.NET Core,尝试将日志写入 Windows EventLog。

首先,我在 Windows 事件日志中创建 Source 和 Log:

它被创建了。

然后,我从我的 ASP.NET Core 应用程序(核心 3.0)的 Program.cs 中配置了 CreateHostBuilder 的日志记录:

我想就是这样。然后我在我的控制器中使用记录器:

但 Windows EventLog 中的 MyTestLog 中没有任何内容。有什么我错过的吗?

0 投票
2 回答
13926 浏览

.net-core - 在 .NET Core 3 中使用 NLog 管理日志记录配置

我在 .NET Core 3.1 辅助服务应用程序中使用 NLog。按照 NLog 的教程,我插入了一个 nlog.config 文件来管理配置。

现在我很困惑,因为我有三点配置日志记录:

  1. 在我需要在依赖注入上下文中创建记录器的代码中

  2. 在 appSettings.json

  3. 在 NLog.config 中

    nuget包安装产生的默认配置文件:

我看到的是,如果我删除 Nlog.config 文件,将不会创建日志文件。其他更改接缝没有效果。

这些配置有什么关系?打开/关闭日志记录和设置级别的最佳方法是什么?

0 投票
1 回答
499 浏览

c# - C# Azure 函数 ILoggerFactory 不使用参考库记录

我使用 c# 创建了一个简单的 Azure 函数,我想为其他类库实现 ILoggerFactory。这是我的代码。

MyFunction => Class1 => Class2

我的问题是在运行时它只记录 FunctionApp1 类中的那个。有没有办法在其他类而不是主功能应用程序中记录信息或错误?

在此处输入图像描述