问题标签 [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.
azure - 使用 DI 的 Azure Functions V3 ILogger - 来自记录器的消息不在跟踪中
在我的 Azure Function 中,我尝试使用 DI 容器进行日志记录;但是我无法让记录器显示日志流中的消息或 Application Insights 中的跟踪。我创建了一个最小的代码示例项目,我正在使用此处显示的 Azure 门户(代码 + 测试)进行测试。我试过使用 Serilog 相同的结果。我尝试从 Function1 中删除 log 参数 - 然后我没有收到任何错误或消息,我认为我错过了一些简单/明显的东西,但我被卡住了。
}
启动
}
主机.json
}
日志流显示2021-07-16T12:59:50.705 [Information] Executing 'Function1' (Reason='This function was programmatically called via the host APIs.', Id=b8238346-7ff7-450d-a7f0-abc8f1a210fa) 2021-07-16T12:59:50.705 [Information] Hello from logger passed as parameter 2021-07-16T12:59:50.705 [Information] Executed 'Function1' (Succeeded, Id=b8238346-7ff7-450d-a7f0-abc8f1a210fa, Duration=1ms)
c# - 如何在我的实现 ILogger 中获取请求的唯一 ID(如来自 Serilog 的 requestid)?
我有一个单独的微服务,它从另一个微服务获取 HTTP 消息(JSON),使用 Serilog 记录它们(消息)并将它们发送到 graylog(GELF)。一条消息 - 一条日志,例如:
- 消息:“请求开始 HTTP/1.1 GET http://localhost:44312/api/home” 来自:“WebApplication,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null” 2)消息:“记录示例文本消息! !!” 来自:“WebApplication,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null” ....
我想为从其他微服务发送的每条消息添加一个“请求 ID”字段,而不在其他微服务中使用 Serilog。如何在 MyLogger 类中获取它?
第一条和第二条消息 - 是相同的请求,但我的“logging-microservce”将它们作为两个不同的消息获取,并且该服务内的 serilog((“logging-microservce”)将它们作为具有不同请求 ID 的另外两个请求处理。
我的日志服务中的 Serilog 配置:
.NET 核心 2.2
c# - Asp.net Core 如何记录 System.AccessViolationException
我们最近发现我们的应用程序System.AccessViolationException
在使用一些第三方库进行一些非托管内存访问时会抛出异常。我当然会尝试与第三方合作以从他们那里获得修复,但这篇文章不是为了那个:)。
我希望对如何将异常信息实际获取到我的日志中获得一些见解。我们正在运行 Asp.net Core 5。我们仅通过启用才发现此错误stdoutLogEnabled
:https ://docs.microsoft.com/en-us/aspnet/core/test/troubleshoot-azure-iis?view=aspnetcore-5.0# aspnet-core-module-stdout-log-iis。但是,不建议将其用于生产环境。所以我目前的问题是,我如何才能 stdoutLogEnabled=true
通过使用其他一些日志记录提供程序(即Log4Net
.
我的 appsettings 中有以下内容:
然而,当我运行一些不安全的代码来模拟时,System.AccessViolationException
我看不到是否登录了我的任何log4net
附加程序。
我不需要专门为 log4net 工作,这正是我们今天使用的。一般来说,我希望能够使用一些高级日志提供程序来捕获此日志,以便它可能在服务器上的本地文件以外的地方记录。
stdoutLogEnabled
服务器上的示例日志输出形式
编辑:添加更多信息。我确实读过这篇类似的文章:Gracefully handling corrupted state exceptions in .NET Core 这对我的问题来说不是个好兆头。我的问题确实不同,因为我不在乎捕捉异常,我对应用程序崩溃没意见。我只是想确保当这些错误确实发生时,我们可以将此信息记录到我们选择的日志提供程序中。
azure-application-insights - 扩展 ApplicationInsights 日志记录遥测
我正在将net4.8
应用程序转移到net50
,其中一部分工作是将日志记录从 重构Microsoft.EnterpriseLibrary
为ILogger
。我想将现有的结构化日志数据传递给 ApplicationInsights。
调用这个:
生成 Application Insights 数据,包括p1
和p2
- 的自定义维度。
调用这个:
在哪里:
不会CustomLogEntry
在 Application Insights 中产生任何属性。
CustomLogEntry
接口的TState
参数也是如此ILogger.Log
。这只是一个模拟;我真正想要利用的是Microsoft.Practices.EnterpriseLibrary.Logging.LogEntry
.
我的下一步是设置自定义ITelemetryInitializer
以将CustomLogEntry
属性添加到我的ITelemetry
.
当我在EventTelemetryInitializer.Initialize
方法中调试时,参数的任何部分telemetry
似乎都与(在这种情况下)的TState
参数有任何联系。ILogger.Log
CustomLogEntry
是否必须使用格式将自定义维度传递给 Application Insights?例如,而不是:
利用:
如果是这样,我倾向于发明一些扩展糖ILogger
,但这感觉就像我在糖上加糖,并且在从 ILogger 到 Application Insight 遥测的映射中遗漏了一些东西。
azure-web-app-service - 在 Azure 应用服务上捕获 asp.net 核心应用程序的 ILogger 日志
我正在开发一个 asp.net 核心 Web 应用程序。
此应用程序托管在 azure app 服务上。
此应用程序在标准输出(dotnet run 命令)上生成日志。此日志来自 ILogger。
我如何在 azure 门户中看到此日志?
谢谢
logging - 应用洞察 | 如何在应用程序洞察力中仅显示预期功能应用程序的日志?
我有几个功能应用程序(FunctionApp1 和 FunctionApp2)。FunctionApp1 将消息发送到由 FunctionApp2 使用的服务总线队列。
执行流时,Application Insights 中的日志会显示组合流的日志。当我在 Application Insights 的选项卡中检查 FunctionApp1 的特定日志时Performance
,它也会显示 FunctionApp2 的日志,反之亦然。
host.json
我试图通过在文件中为 FunctionApp1设置日志级别来执行 FunctionApp1 时禁用 FunctionApp2 的日志记录,如下所示:
这将完全禁用 FunctionApp2 的日志。
如何设置这样,当请求 FunctionApp1 的日志时,仅显示其日志并且与 FunctionApp2 相同?
更新
我尝试EnableDependencyTracking
在 FunctionApp1 的 host.json 文件中设置为 false,如下所示:
这也不起作用。
c# - 私有类成员是否应该使用自己的 ILogger 实例?
我正在编写一个 C# 库,并试图弄清楚如何最好地进行日志记录。我希望我的库在有和没有 DI 的情况下都可以使用。
假设我的库有一个名为的主要公共类Foo
,它通过其构造函数接受IBar
依赖项,但也有一个硬连接的私有类型成员Qux
(一个内部类)。
为了使我的库日志框架不可知,我相信最佳实践是将 an 传递ILogger<Foo>
给 的构造函数Foo
,并将 anILogger<BarImpl>
传递给IBar
.
我的问题是,应该Qux
使用ILogger<Foo>
记录器,还是应该有自己的记录器ILogger<Qux>
?如果是这样,如何Foo
创建一个ILogger<Qux>
传递给Qux
?
c# - 如何将文件日志记录添加到 c# graph api 通知应用程序(切换或扩展 Ilogger 以将信息记录到日志文件)
我在过去几周开始工作(或尝试)简单的 MVC-App 通知。
我可以将信息记录到控制台,但是如何为 http-requests 的通知功能添加简单的文件记录器?从头开始,我可以通过大量工作实现它,但没有任何支持文件记录的功能。我找到了 Ilogger 来登录控制台。但是有没有一种简单的方法可以将 Ilogger 从日志记录切换到控制台日志记录到文件?
https://github.com/microsoftgraph/msgraph-training-changenotifications/tree/live
c# - 使用 ILoggerFactory / ILoggingBuilder 时 NLog 设置自定义记录器命名空间后缀
我有一个第三方库,让我有机会NLog
通过ILoggerFactory
接口进行连接。但是,我想为记录器命名空间添加一个后缀。
以下 ExtensionMethod 目前用于注入NLog
.
目前,命名空间如下所示:
my.custom.library.class1
my.custom.library.class2
my.custom.library.with.inner.subclass
但是,我希望在每个命名空间后面都有例如foo
my.custom.library.class1.foo
my.custom.library.class2.foo
my.custom.library.with.inner.subclass.foo
c# - 如何提供 ILogger来自.net核心控制器的新类对象中的实例?
作为给 null 它给出的值不能为 null。(参数“记录器”)错误。 即使给出模型实例,它仍然保持为空
根据建议我编辑了我的问题