2015-02-16 11 views
7

ja wyłączyć qDebug() wiadomości piszącJak włączyć i wyłączyć qDebug() komunikaty

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

w pliku .pro. To działa dobrze. Chciałbym wiedzieć, czy istnieje sposób, aby włączyć wiadomości qDugug() za pomocą kodu źródłowego. Chciałbym wysłać to jako argument do wniosku. Dlatego domyślnie będę wyłączał komunikaty qDebug(), ale z argumentem informującym o włączeniu wiadomości qDebug() potrzebuję włączonego qDebug(). Czy można to zrobić?

Każda pomoc jest mile widziana

+2

Możesz zajrzeć do dokumentacji 'qInstallMsgHandler'. – vahancho

+0

@vahancho, że wiersz w pliku .pro nie zatrzymuje się konsola.log dla mnie –

+1

@mohammadalabid, dlaczego dodajesz go do pliku .pro? Powinien być dodany do twojego kodu czarodzieja. Zobacz odpowiedź na to pytanie i dokumentację Qt: http://doc.qt.io/qt-5/qtglobal.html#qInstallMessageHandler. – vahancho

Odpowiedz

6

Można dodać własną funkcję obsługi komunikatów debugowania Qt z qInstallMsgHandler

Pozwoli to kontrolować, czy drukować wiadomości.

4

Można kontrolować QDebug (oraz wszystkie komunikaty) w czasie wykonywania przez kilka opcji:

  1. QLoggingCategory który pozwala używać zmiennych środowiskowych lub pliki konfiguracyjne. Na przykład z Qt 5.6 możesz zrobić: QT_LOGGING_RULES="*.debug=false;driver.usb.debug=true" włącza qDebug dla wszystkiego oprócz debugowania USB. Jeśli potrzebujesz bardziej skomplikowanej konfiguracji lub używasz Qt 5.5 lub wcześniejszego, możesz włączać i wyłączać poszczególne komunikaty debugowania za pomocą pliku qtlogging.ini.
  2. QT_MESSAGE_PATTERN może być również używany do kontrolowania wyjścia komunikatu, jak również wykonywania formatting.