我写了一个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}"