2015-02-16 16 views
7

tôi vô hiệu hóa các qDebug() thông điệp bằng cách viếtLàm thế nào để kích hoạt và vô hiệu hóa qDebug() thông điệp

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

trong file .pro. Điều này hoạt động tốt. Tôi muốn biết nếu có bất kỳ cách nào để kích hoạt các tin nhắn qDebug() sử dụng mã nguồn. Tôi muốn gửi nó như là một đối số cho ứng dụng. Vì vậy, theo mặc định, tôi sẽ có các tin nhắn qDebug() bị vô hiệu hóa, nhưng với một đối số cho biết để bật các tin nhắn qDebug(), tôi cần kích hoạt qDebug(). có khả năng làm cái này không?

Any help is appreciated

+2

Bạn có thể xem tài liệu 'qInstallMsgHandler'. – vahancho

+0

@vahancho dòng đó trong tệp .pro không dừng console.log cho tôi –

+1

@mohammadalabid, tại sao bạn thêm nó vào tệp .pro? Nó sẽ được thêm vào mã sorce của bạn. Vui lòng xem câu trả lời cho câu hỏi này và tài liệu Qt: http://doc.qt.io/qt-5/qtglobal.html#qInstallMessageHandler. – vahancho

Trả lời

6

Bạn có thể thêm chức năng của riêng bạn để xử lý Qt thông điệp debug với qInstallMsgHandler

này sẽ cho phép bạn kiểm soát xem để in các thông điệp.

4

Bạn có thể kiểm soát QDebug (và tất cả các thư) khi chạy qua một vài lựa chọn:

  1. QLoggingCategory nào cho phép bạn sử dụng các biến môi trường hoặc các tập tin cấu hình. Ví dụ với Qt 5.6 bạn có thể làm: QT_LOGGING_RULES="*.debug=false;driver.usb.debug=true" bật qDebug cho mọi thứ ngoại trừ gỡ lỗi USB. Nếu bạn cần một thiết lập phức tạp hơn, hoặc nếu bạn đang sử dụng Qt 5.5 hoặc cũ hơn, bạn có thể bật và tắt các thông báo gỡ lỗi riêng lẻ thông qua tệp qtlogging.ini.
  2. QT_MESSAGE_PATTERN cũng có thể được sử dụng để kiểm soát đầu ra thư cũng như làm formatting.
Các vấn đề liên quan