重定向PostgreSQL Qt驱动程序stdout/stderr输出
Redirect PostgreSQL Qt driver stdout/stderr output
我当前调用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
。
严可以这样重新修正stderr
:
freopen("my_log.txt", "w", stderr);
对于其他有相同问题的用户,您可以使用以下代码禁用警告:
QSqlQuery query(db);
query.exec("SET standard_conforming_strings TO true");
但不幸的是,这意味着问题对调用方是隐藏的,并且反斜杠会在数据库中自动转义,这可能会在以后检索数据时造成问题。
相关文章:
- 如何将stdout重定向到stderr
- 递归函数计算序列中的平方和(并输出过程)
- 如何使用 < 和 > 命令获取 c++ 中的输入和输出?
- 请解释"函数1(p1,p2,p3);"的输出
- C++:将控制台输出存储在宏中更好吗
- 创建一个函数以在输入为负数或零时输出字符串.第一次执行用户定义的函数
- 如何在OMNET++中指定与命令行参数组合的输出文件名
- 为什么我的代码在输出中增加了93天
- 如何从void函数输出字符串
- 输入到文件并输出到另一个文件,并将流文件传递给函数
- AES加密到解密未正确输出
- 如何将c++程序的一些输出传递给shell,以便在shell中使用
- 使用C++程序合并排序没有得到正确的输出
- 为什么我不能在不创建字符串变量的情况下使用函数的字符串输出
- 乱码控制台输出管道 stderr 到更多
- 在Qt中:我可以输出到“stdout”吗,就像使用qDebug()输出到“stderr”一样简单
- 为什么在Shell输出中运行的可执行操作到stdout,而不是崩溃时的stderr
- C++-将stdout/stderr复制到文件,同时保留控制台输出
- 重定向PostgreSQL Qt驱动程序stdout/stderr输出
- DLL 输出到 stderr 在从父级重定向时不起作用