Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use QLoggingCategory #37

Open
Kaffeine opened this issue Jul 7, 2017 · 3 comments
Open

Use QLoggingCategory #37

Kaffeine opened this issue Jul 7, 2017 · 3 comments
Milestone

Comments

@Kaffeine
Copy link
Owner

Kaffeine commented Jul 7, 2017

No description provided.

@Thaodan
Copy link
Contributor

Thaodan commented Jul 23, 2017

As far as I read QLoggingCategory is about different output categories for different stuff.
But which categories are needed?
Also are the #ifdefs needed in front of the debug outputs?

@Kaffeine
Copy link
Owner Author

Hello, sorry for the long reply.
I suppose that we can do something like

diff --git a/TelegramQt/CTelegramDispatcher.cpp b/TelegramQt/CTelegramDispatcher.cpp
index 011a710..13876ef 100644
--- a/TelegramQt/CTelegramDispatcher.cpp
+++ b/TelegramQt/CTelegramDispatcher.cpp
@@ -31,13 +31,15 @@ using namespace TelegramUtils;
 #include <QTimer>
 
 #include <QCryptographicHash>
-#include <QDebug>
+#include <QLoggingCategory>
 #include <algorithm>
 
 #ifdef DEVELOPER_BUILD
 #include "TLTypesDebug.hpp"
 #endif
 
+Q_LOGGING_CATEGORY(categoryDispatcher, "telegram-qt.dispatcher", QtWarningMsg)
+
 static const QVector<Telegram::DcOption> s_builtInDcs = QVector<Telegram::DcOption>()
         << Telegram::DcOption(QLatin1String("149.154.175.50") , 443)
         << Telegram::DcOption(QLatin1String("149.154.167.51") , 443)
@@ -212,7 +214,7 @@ QVector<Telegram::Peer> CTelegramDispatcher::dialogs() const
 
 void CTelegramDispatcher::addContacts(const QStringList &phoneNumbers, bool replace)
 {
-    qDebug() << "addContacts" << maskPhoneNumberList(phoneNumbers);
+    qCDebug(categoryDispatcher) << "addContacts" << maskPhoneNumberList(phoneNumbers);
     if (activeConnection()) {
         TLVector<TLInputContact> contactsVector;
         for (int i = 0; i < phoneNumbers.count(); ++i) {

So: one category per class.
The ifdefs in front of the debug are used to change verbosity for developer build. The dev build turns on dump of read object in json-like format.

A developer build output lools like this:

void CTelegramConnection::processMessagesGetDialogs(RpcProcessingContext*) 
"MessagesDialogsSlice" processed as Dialogs
void CTelegramDispatcher::onMessagesDialogsReceived(
        const TLMessagesDialogs&, quint32, quint32,
        const TLInputPeer&, quint32) TLMessagesDialogs(MessagesDialogsSlice) {
    count: 125
    dialogs: QVector(TLDialog(DialogChannel) {
        peer: TLPeer(PeerChannel) {
            channelId: 12345654321
        }
        topMessage: 30000
        topImportantMessage: 30000
        readInboxMaxId: 29999
        unreadCount: 1
        unreadImportantCount: 1
        notifySettings: TLPeerNotifySettings(PeerNotifySettings) {
            muteUntil: 2147483647
            sound: default
            showPreviews: true
            eventsMask: 0
        }
        pts: 30000
    }, TLDialog(Dialog) {
...
    })
    messages: QVector(TLMessage(Message) {
        flags: 1
        id: 30000
        fromId: 78901234
        toId: TLPeer(PeerChat) {
            chatId: 12345654321
        }
        date: 1500883344
        message: 
        media: TLMessageMedia(MessageMediaPhoto) {
            photo: TLPhoto(Photo) {
                id: 5455454554545454545
                accessHash: 6677889900112233445
                date: 1500883333
                sizes: QVector(TLPhotoSize(PhotoCachedSize) {
                    type: s
                    location: TLFileLocation(FileLocation) {
                        dcId: 2
                        volumeId: 12341234
                        localId: 123123
                        secret: 12341234123412341234
                    }
                    w: 90
                    h: 90
..
void CTelegramDispatcher::onUsersReceived(const QVector<TLUser>&) 23
void CContactModel::addContact(quint32) 111222333
void CContactModel::addContact(quint32) 222333444

and a release debug build output for the same operation is

void CTelegramConnection::processMessagesGetDialogs(RpcProcessingContext*)
"MessagesDialogsSlice" processed as Dialogs
void CTelegramDispatcher::onMessagesDialogsReceived(
        const TLMessagesDialogs&, quint32, quint32,
        const TLInputPeer&, quint32) 1910540000 0 0 0 0 30
void CTelegramDispatcher::onUsersReceived(const QVector<TLUser>&) 23
void CContactModel::addContact(quint32) 111222333
void CContactModel::addContact(quint32) 222333444

May be the ifdefs will be replaced in some far future, but I have no better solution yet.

@Kaffeine Kaffeine added this to the 0.2.0 milestone Jan 23, 2020
@Kaffeine
Copy link
Owner Author

72ea6fc

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants