我目前调用 qInstallMsgHandler()
将所有 Qt 错误、警告和调试输出重定向到我自己的消息处理程序。
这在 99% 的时间都有效,但是当通过 QSqlQuery 对象执行 SQL 语句时,我仍然会得到以下输出到 stderr:
**WARNING: nonstandard use of \\ in a string literal
LINE 1: EXECUTE qpsqlpstmt_11 ('<?xml version=''1.0'' encoding=''U
HINT: Use the escape string syntax for backslashes, e.g., E'\\'.**
数据库是 PostgresSQL 8.4 版。我还有什么想法可以拦截和重定向此警告吗?
最佳答案
似乎 Qt 驱动程序正在使用的一些 PostgreSQL 库写入 stderr
。
Yan 可以像这样重定向 stderr
:
freopen("my_log.txt", "w", stderr);
关于c++ - 重定向 PostgreSQL Qt 驱动程序标准输出/标准错误输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36715894/