c++ - 重定向 PostgreSQL Qt 驱动程序标准输出/标准错误输出

标签 c++ postgresql qt qt4.7

我目前调用 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/

相关文章:

postgresql - 查询检查 postgresql 数据库状态

c++ - 根据子数据对 qtreewidget 顶层项目进行排序

c++ - QListWidget共享同一个模型

python - 没有为 QML ComboBox 定义 modelData,并且在 QAbstractListModel 中具有多个角色

c++ - std::is_nothrow_move_constructible 是否需要 noexcept 析构函数?

c++ - 数据库中的自动 id 与通过代码自动 id

java - PostgresQL中如何使用SCRAM-SHA-256通过jdbc连接数据库

c++ - 哪种数据结构更适合用于查找句子是否包含唯一字符?

c++ - T "decaying"数组的函数参数到指向 T 的指针?

Java Postgresql 运行时错误