Как включить и отключить сообщения qDebug()

я отключаю сообщения qDebug (), написав

CONFIG(release, debug|release):DEFINES += QT_NO_DEBUG_OUTPUT

в .pro файл. Это прекрасно работает. Я хотел бы знать, есть ли способ включить сообщения qDebug() с помощью исходного кода. Я хотел бы отправить его в качестве аргумента в приложение. Поэтому по умолчанию у меня будут отключены сообщения qDebug (), но с аргументом, указывающим на включение сообщений qDebug (), мне нужно включить qDebug (). Возможно ли это сделать?

любая помощь оценили

2 ответов


вы можете добавить свою собственную функцию для обработки сообщений отладки Qt с помощью qInstallMsgHandler

Это позволит вам контролировать, следует ли печатать сообщения.


вы можете управлять QDebug (и всеми сообщениями) во время выполнения с помощью нескольких опций:

  1. QLoggingCategory что позволяет использовать переменные среды или файлы конфигурации. Например с Qt 5.6 вы можете сделать: QT_LOGGING_RULES="*.debug=false;driver.usb.debug=true" включает qDebug для всего, кроме отладки USB. Если вам нужна более сложная настройка, или если вы используете Qt 5.5 или ранее, вы можете включать и выключать отдельные отладочные сообщения через qtlogging.Ини файл.
  2. QT_MESSAGE_PATTERN может также использоваться для управления выводом сообщений, а также делать форматирование.