我写了一个用于测试数据库连接的qt小型控制台实用程序,代码块是:
db.setHostName("hostIP");
db.setDatabaseName("name");
db.setUserName("uid");
db.setPassword("pw");
db.setPort(1521);
while(true)
{
if (db.open())
{
qDebug()<<"OPEN";
db.close();
}
else
{
qDebug()<<"YOU MESSED UP "<<db.lastError().text();
}
}
数据库关闭或无法连接的控制台输出可以在控制台输出中看到,我想要的也是开发时间戳。
有没有办法在控制台上打印事件时间戳以及qDebug消息???
答案 0 :(得分:10)
您可以安装消息处理程序并在每条消息之前打印出时间戳。有关此问题,请参阅qInstallMessageHandler
的文档。
使用此解决方案,您无需在QTimer::currentTime()
的每次通话中添加qDebug()
。
答案 1 :(得分:5)
当然可以。为此,您可以使用QTime类,即:
qDebug() << QTime::currentTime().toString() << "YOU MESSED UP "<< db.lastError().text();
或者,您也可以使用QDateTime::currentDateTime()
功能打印出日期和时间信息。
答案 2 :(得分:1)
如果您使用的是Linux,则可以设置QT_MESSAGE_PATTERN
环境变量,如here所述:
QT_MESSAGE_PATTERN="[%{type}] %{appname} (%{file}:%{line}) - %{message}"