大统一的伐木理论

Maw*_*awg 6 testing embedded logging

他们是伐木的统一理论吗?我们要开发一个吗?问题(只是为了表明这不是讨论:),我该如何改进以下内容?(请注意,我主要生活在嵌入式世界中,但也欢迎非嵌入式建议)

你如何记录,何时记录,你记录什么,你如何处理日志文件?

你如何记录 - 我通常有宏,#ifdef TESTING,有点像.它们写入RAM并且低优先级进程在系统空闲时将它们写出来(使用UDP,因为我使用嵌入式系统)

你什么时候登录 - 与投票,早期和经常一样.在每个(重大)程序事件中,我都会记录不同的级别.收到的事件,事务成功/失败,数据更新等

你记录什么 - 致命/错误/警告/信息/调试/跟踪何时使用不同的日志级别?

你如何处理日志文件 - 1)保留它们(在CVS中),通过和失败2)捕获所有内容并在以后过滤以防我不能重复问题.我有工具按"级别"(致命/错误/等),进程,文件等过滤日志.并绘制消息序列图,转储数据结构,绘制内存使用的直方图 - 我缺少什么?

嗯,二进制或ascii日志文件格式?Ascii比较庞大,但二进制需要更多处理.我已经做了两个,目前我使用ascii

问题 - 我错过了什么,我怎么能改进这个?

Cra*_*een 2

您可以通过多种不同的方式“检测”您的代码,从启动/关闭事件到单个机器指令执行(使用处理器模拟器)。在所有的可能性中,什么是值得做的?不要只是为了完整性而这样做;心中有一个特定的目标。如果您愿意的话,可以是一个商业案例,其中包含您期望获得的好处。例如:

\n\n
    \n
  • 深入了解 CPU 任务执行时间/模式以实现优化(如果您需要提高性能)。
  • \n
  • 深入了解其他系统以解决系统集成问题(例如,当您的 VoIP 盒子连接到特定对等点时,它发送和接收哪些消息?)
  • \n
  • 洞察错误的本质(用于现场诊断)
  • \n
  • 援助发展
  • \n
  • 协助验证测试
  • \n
\n\n

我认为日志记录没有统一的理论,因为你所做的事情将取决于许多细节:

\n\n
    \n
  • 数据量
  • \n
  • 数据类型\n\n
      \n
    • 活动
    • \n
    • 流式音频/视频
    • \n
  • \n
  • 可用存储空间\n\n
      \n
    • 存储速度
    • \n
    • 存储容量
    • \n
  • \n
  • 提取数据的可用通道\n\n
      \n
    • 带宽
    • \n
    • 成本
    • \n
    • 可用性\n\n
        \n
      • 已连接互联网 24\xc3\x977
      • \n
      • 需要实地考察
      • \n
      • 填写 OHS 文件后,需要打开生锈的大门、爬梯子到屋顶、插入电缆
      • \n
      • 需要等到南极冬季结束冰盖融化
      • \n
    • \n
  • \n
  • 随机访问与线性访问(例如,如果压缩它,是否需要从头开始读取以解压缩并访问某个随机点?)
  • \n
  • 需要在错误情况下生存\n\n
      \n
    • 看门狗重启
    • \n
    • 可能的数据损坏\n\n
        \n
      • 由于电源故障
      • \n
      • 由于存储介质不可靠
      • \n
      • 需要在飞机失事中幸存
      • \n
    • \n
  • \n
\n\n

至于 ASCII 与二进制,我通常更喜欢保持日志记录简单,并将任何好的演示文稿放在解码数据的 PC 应用程序中。通常,在 PC 软件(用 Python 等编写)中创建用户友好的演示文稿比在嵌入式系统本身中更容易。

\n