使用文本格式

时间:2018-04-03 17:14:13

标签: c++ qt

根据manual要登录文件,我需要在main中打开它:

QScopedPointer<QFile>   m_logFile;

void messageHandler(QtMsgType type, const QMessageLogContext &context, const QString &msg);
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    m_logFile.reset(new QFile("logFile.txt"));

    m_logFile.data()->open(QFile::Append | QFile::Text);
    qInstallMessageHandler(messageHandler);

    MainWindow w;
    w.show();

    return a.exec();
}

然后我可以登录:

qDebug(logDebug()) << "Hello Debug";

但是如何使用printf

之类的文本格式以更方便的方式组织日志记录
printf("Hello Debug %d, my_int);

3 个答案:

答案 0 :(得分:1)

除了类似流的API,您只需使用printf之类的qDebug

qDebug("Hello Debug %d", my_int);

与记录category类似:

qCDebug(category, "Hello Debug %d", my_int);
  

提示

     

以下消息格式可以很好地链接到 QtCreator 应用程序输出窗格中打印跟踪的行。

QT_MESSAGE_PATTERN=[%{time process}] %{threadid} file:/%{file}:%{line}: %{message} %{if-critical}%{backtrace}%{endif}

答案 1 :(得分:0)

你可以简单地写整数对象。

qDebug(logDebug()) << "Hello Debug "<< my_int;

qDebug(logDebug()) << "Hello Debug"<< " "<<my_int;

答案 2 :(得分:0)

您可以使用QString::asprintf()或优选QString::arg()使用 $query = DB::table('posts') ->select('posts.*', 'subcategories.subcategory_title_en', 'subcategories.subcategory_title_bn', 'categories.category_title_en', 'categories.category_title_bn', 'users.*', 'postimages.postimage_thumbnail' ) ->join('subcategories', 'subcategories.subcategory_id', '=', 'posts.subcategory_id') ->join('categories', 'categories.category_id', '=', 'subcategories.parent_category_id') ->join('users', 'users.id', '=', 'posts.user_id') ->join('postimages', 'postimages.post_id', '=', 'posts.post_id')->groupBy('posts.post_id'); 格式语法生成QString,然后将其与printf一起使用。