【问题标题】:WPP tracing for linux用于 Linux 的 WPP 跟踪
【发布时间】:2015-02-24 15:45:28
【问题描述】:

我正在寻找一种将跟踪输出到我的代码中的日志文件的方法,该代码在 linux 上运行。

我不想在我部署它的每个地方都包含二进制文件中的打印信息。

它是 windows,我只是使用 WPP 进行跟踪,而没有将实际的跟踪字符串放入我的二进制文件中。

如何在 Linux 中实现?

【问题讨论】:

  • > 我不想在二进制文件中包含打印信息
  • @myaut 这还不够好。我希望我部署的“发布”版本也可以跟踪数据。这就是 WPP 的用途,也是我想在 Linux 上实现的目标

标签: linux trace windows-wpp


【解决方案1】:

我对这方面的 Linux 工具不是很熟悉,所以也许有更好的系统。但是,由于没有其他人提出任何好的建议,所以我会提出建议。 (可能不是一个很好的建议,但我现在能想到的最好的建议。)

理论上,你可以继续使用 wpp。 Wpp 只是一个模板系统。它扫描配置和输入文件以创建数据结构。然后它运行一个模板,填充它从扫描中获得的数据值,生成 tmh 文件。您可以创建一组使用 Linux api 而不是 Windows api 的新模板,并以与其他日志解码器系统配合使用的方式记录消息字符串。

【讨论】:

    【解决方案2】:

    我现在才注意到这个问题,并想在故事中添加我的两分钱,只是为了一个案例。就个人而言,我非常欣赏 Windows WPP Tracing,并认为它可能是同类工具中用于实际开发故障排除的最佳工程解决方案。

    碰巧我将 WPP 的使用扩展到类 Unix 平台两次。我们希望在总体上使用 WPP 概念的强大方面,并在多平台代码片段中使用它。这不是移植,而是我们在 Windows 上配置的特定 WPP 使用的包装器。有一次我们有一个 Web 服务来在 Windows 上执行实际的 WPP 预处理;这听起来可能有点疯狂,但它在本地网络中运行良好且有效。在每次编译发送 Web 请求之前执行的包装脚本,获取处理后的文件并对生成的包含文件进行后处理,以使其适用于类 Unix 平台。第二次我们实现了我们自己的简化 WPP 预处理器(我们发现它还有其他用途 - 例如,我们可以为生产和单元测试生成不同的跟踪语句)。这是一个苛刻的解决方案:无论如何,您都需要在非 Windows 平台上的包装器后面使用一些物理跟踪框架(嗯,我们显然是第一次实现了我们自己的较低级别)。

    我认为 Linux 世界没有可与 WPP 相媲美的框架。曾经我什至认为为 WPP 制作一个开源移植项目可能是一个好主意。我不确定它是否会被要求很多。我说这是一个很棒的工程解决方案。但是谁想做肮脏的工程工作呢?开源社区更喜欢抽象的面向对象和通用的解决方案,流式传输和相应工具的必要性较低(WPP 需要特殊的管理工具和操作系统支持)。易于编写代码是当今的选择。

    WPP 不受欢迎也可能是 Microsoft 的错误(或不愿意)。他们将其保留为一个内部框架,仅通过 Windows DDK 的案例出现,因为他们必须为驱动程序开发人员提供一些日志记录/跟踪解决方案。甚至没有人注意到 WPP 也非常适合用户空间代码。例如,用于 C# 的 WPP 预处理器从未公开过。

    尽管如此,我仍然认为将 WPP 移植到 Unix/Linux 工作可能是一项具有挑战性、有趣甚至有用的尝试。如果有人决定领导它。 :)

    【讨论】:

      猜你喜欢
      • 2012-08-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多