gpt4 book ai didi

c++ - 如何捕获 Windows 服务的标准错误输出?

转载 作者:可可西里 更新时间:2023-11-01 13:21:29 24 4
gpt4 key购买 nike

我有一个使用 Mozilla LDAP 库的应用程序。我们正在诊断涉及 LDAP 库无法连接到服务器的问题。我试图通过将 lib 的调试版本与应用程序一起使用并使用 ldap_set_opt 启用调试来从 LDAP 库中获取更多信息。不幸的是,我认为调试库正在将调试字符串发送到标准错误。

当我再次重新编译 LDAP 客户端库时,希望启用使其调用 OutputDebugString 而不是流式传输到 stderr 的选项,一个不错的解决方案是将 stderr 输出捕获到文件中。不过,该应用程序作为 Windows 服务运行。

有人知道如何将 stderr 重定向到作为服务运行的应用程序的文件吗?

编辑

我希望不必再修改我已有的服务源代码。服务配置中的选项将是理想的。

最佳答案

你能尝试手动重定向 stderr 吗?

    FILE* stderr_redirect = freopen( "C:/stderr.log", "w", stderr );

// Code that writes to stderr

fclose( stderr_redirect );

编辑:

除了自己在服务中处理这些流之外,没有办法为服务重定向 stdout 或 stderr。某些服务提供了将这些消息重定向到文件的选项。您可以临时重定向这些流,或者向您的服务添加一个选项,以便在您下次遇到问题时可以对其进行配置。

关于c++ - 如何捕获 Windows 服务的标准错误输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/830825/

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