c# - System.Diagnostics.Trace 与 ILogger
问题描述
我对使用 System.Diagnostics.TraceTrace.TraceInformation("This is a test")
和使用 ILogger logging abstraction之间的区别感到困惑logger.LogInformation("This is a test")
。
我在一个 .Net Core 2.2 项目中工作,并计划将其部署为 Azure Web 应用程序。两种方法有区别吗?一个比另一个更适合我正在做的事情吗?为什么一个人会使用一个而不是另一个?
解决方案
显然,没有分界线何时使用。如果你问自己“目的是什么?” 答案恰好是“与系统进程、事件日志或性能计数器交互” System.Diagnostics
。如果答案恰好是“我只想要应用程序日志记录”,那么选择Logger
.
对于 Azure Web App,您可能需要使用AddAzureWebAppDiagnostics。
记录和跟踪之间的区别?
我保持清醒的方式是Logging
帮助您报告任何错误。
但是,如果您想了解函数的哪一部分导致错误或任何性能瓶颈,请使用Tracing
. Tracing
有助于了解控制或程序的流程是怎样的。您可能还想查看其他级别的日志记录,例如fatal
, warning
, debug
,info
等。
推荐阅读
- python - 在 Pytorch 中保存和重新加载 LSTM 模型
- variables - 在 Netezza SQL 中传递变量名
- reactjs - 当从 redux 接收道具时,我的 PureComponent 会初始化其状态。有什么线索吗?
- amazon-web-services - 无法设置到私有 AWS API 网关 API 的 SSH 隧道
- angular - 设置选项后启用选择控制以选择上一个
- nginx - Nginx 没有提供正确的资源
- azure - 如何从 Azure VM [smalldisk] Windows Server 1809 Datacenter with Containers 卸载容器
- node.js - 我怎样才能在本地获得特定响应代码的错误?
- sql-server - SQL Server 2016 错误 4920 - ALTER TABLE {TableName} 禁用触发器 {TriggerName} 更改我的表和触发器名称
- javascript - VueJS:从未调用过计算属性的观察者