q调试控制台输出与时间戳



我写了一个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 消息???

您可以安装消息处理程序并在每条消息之前打印出时间戳。为此,请参阅 qInstallMessageHandler 的文档。使用此解决方案,您不必在每次调用qDebug()时都添加QTimer::currentTime()

当然可以。为此,您可以使用QTime类,即:

qDebug() << QTime::currentTime().toString() << "YOU MESSED UP "<< db.lastError().text();

或者,您可以使用QDateTime::currentDateTime()功能以同样的方式打印出日期和时间信息。

如果你在 linux 上,你可以设置QT_MESSAGE_PATTERN环境变量,如下所述:

QT_MESSAGE_PATTERN="[%{type}] %{appname} (%{file}:%{line}) - %{message}"

最新更新