跟踪和记录之间有什么区别?

pen*_*ake 16 .net java windows logging trace

从术语的角度来看,一般来说,"追踪"和"记录"之间有什么区别?

谢谢!

Sto*_*fan 18

记录不是跟踪!

Logging:

在设计大型应用程序时,您需要在机器之间进行良好且灵活的错误报告,以便集中收集日志数据.这是一个完美的用例,用于Logging Application Block配置某些远程跟踪侦听器并将日志数据发送到中央日志服务器,该服务器将其日志消息存储在数据库,日志文件或其他任何内容中.如果您使用进程外通信,则会受到网络性能的限制,最佳情况是几千log/s.

Tracing:

除了错误报告,您还需要跟踪您的程序流程以找出性能瓶颈的位置,更重要的是,当发生错误时您有机会了解您是如何实现的.在理想的世界中,每个函数都会使用函数持续时间,传递的参数以及您在函数中获得的距离来启用一些跟踪.


Gra*_*Lea 15

如果上下文正在跨分布式架构开发可观察性功能,那么人们通常会谈论指标、日志和跟踪。在这种情况下,跟踪指的是分布式跟踪

分布式跟踪是一种特殊类型的遥测(类似于日志记录,但不同),通常通过仪器框架以高度自动化的方式生成。遥测数据从系统中的各个服务发送,并由中央服务(分布式跟踪器)聚合,中央服务能够将来自许多单独服务的遥测数据拼凑成针对进入系统的每个请求的单个跟踪。然后,它可以提供请求如何在系统中的服务中移动的时间线和图表。分布式跟踪的主要目的是调查整个分布式系统的性能下降、错误传播和依赖性交互。

在更传统的整体上下文中进行跟踪通常会着眼于跟踪应用程序内的各个函数调用,而分布式跟踪通常只关注服务之间的交互。函数调用级细节的遥测是可能的,但很少实现。

有关分布式跟踪的更多信息,可以在以下位置找到一个很好的介绍: https: //opentelemetry.lightstep.com/tracing/


Bor*_*vić 7

Trace是过滤程度最低的日志记录级别。每个日志记录语句都有一定的过滤级别:

  • trace
  • debug
  • warning
  • error
  • severe

例如。如果日志库配置为使用 level 进行日志记录,warning则所有warning,errorsevere日志语句将把消息打印到日志输出。

  • 我认为这些术语并不完全标准,因为许多软件供应商和/或开发人员以完全不同的方式(和上下文)使用这些术语。您的描述与像“log4net”这样的库完全吻合,但是,这并不一定适用于所有情况。我认为很常见的是,跟踪是从事件/操作“获取/接收”数据的过程,而日志记录是输出(发送或存储)跟踪的过程 (8认同)
  • 虽然这是真的。同样重要的是要注意“跟踪级别日志记录”!=“日志记录跟踪” (8认同)
  • 感谢答案,但不幸的是这是误导性的。正如其他评论所述,它给人的印象是跟踪只是日志记录的一个子集,或者在某种程度上是类似的。TRACE 这个词指的是“堆栈跟踪”,例如:记录如此详细的信息,以便向我展示整个堆栈跟踪。 (2认同)