带有Timestamp的qDebug控制台输出

时间:2014-12-04 09:55:35

标签: c++ qt qt4 timestamp database-connection

我写了一个用于测试数据库连接的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消息???

3 个答案:

答案 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}"