gpt4 book ai didi

.net 诊断最佳实践?

转载 作者:行者123 更新时间:2023-12-03 14:52:47 26 4
gpt4 key购买 nike

我们最初没有使用任何日志记录或调试跟踪,但在花了几周时间追踪一些数据损坏之后,我们决定将所需的 Debug.Write 和 Trace 用于生产和 Debug.Assert

所以现在的问题是使用调试和跟踪日志记录的最佳实践是什么。我只是在寻找一些通用的东西。

public void AddRectodatabase(object record)
{
Debug.WriteLine(record.ToString());
Trace.WriteLine(record.ToString());

// Add it to databse

Debug.Assert(true, "Use this on case by case basis");
}

这对于一般用途是否足够好,我在那里做错了什么吗?

我们希望坚持使用 .net System.Diagnostics 而不是 log4net 等其他替代方案。

System.Diagnostics 中还有其他有用的东西吗?

最佳答案

您应该计划在整个应用程序中引发 ETW 跟踪事件 - 不仅要提醒监听器注意问题,还要提供对应用程序和组件性能的行为甚至性能的可见性。
ETW 是一种(疯狂的)高性能和(惊人的)低影响的引发可以收集和分析的事件的方式 - 即使在生产环境中也是如此。它是在 Windows、SQL 等中使用的日志记录和跟踪基础结构。
三个有用的链接:

  • Diagnostics: Using ETW tracing in .NET 3.5 (EventProviderTraceListener)
  • Controlling .NET Framework Logging link text
  • Two Minute Drill: Introduction to XPerf

  • 按顺序阅读所有 3 篇文章,然后重新阅读 - 后面的信息将非常有用,但除非您首先掌握基础知识,否则会更难理解;) 忽略使用 logman 启动和停止跟踪收集的说明;改用 XPerf。
    如果您还没有看过 the Perf toolkit and XPerf viewer ,那你就请客了! :D
    强烈鼓励您考虑在所有应用程序最重要功能的开始和结束时引发开始和停止事件,以便您可以将这些事件与其他遥测数据叠加在一起,以便您可以看到,例如,您的应用程序功能对磁盘的影响、网络、内存、CPU等。
    希望这可以帮助。

    关于.net 诊断最佳实践?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2795310/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com