Thanks, tbscopde and fatjuicymole. It's all much clearer now.

Part of my confusion was because I got QT_NO_DEBUG and QT_NO_DEBUG_OUTPUT mixed up. The former is defined in Qt Creator's makefile.release, so I thought a release build automatically suppress debug (and warning) messages.