Название: [Решено] Категория журналирования QLoggingCategory Отправлено: sergek от Февраль 20, 2023, 12:00 Коллеги,
понадобилось мне в одном из модулей Qt подкрутить журналирование. Я создал новую категорию, например, Код присвоил ей имя Код Соответственно, в модуле использую qCWarning(MODBUS_RTU_VIA_TCP) << что-то там... Это все я затеял, для того, чтобы фильтром Код управлять записью в журнал некоторых специфических сообщений, которые мне не нужны. Но беда в том, что в проме я не везде могу апдейтить эти библиотеки. Поэтому кое-где мне вместо вышеуказанного фильтра придется ставить Код Вопрос состоит в том, как определить, существует ли категория MODBUS_RTU_VIA_TCP с именем "qt.modbus.rtu_via_tcp"? Заглянул в исходники qloggingcategory.h, там определен макрос Код Т.е. определяется глобальная переменная. Знаю, что средствами C++ проверить наличие переменных невозможно. Но, может быть, в Qt есть какое-нибудь средство для этого? PS Пока составлял это сообщение, появилась мысль - в классе создать property, которую можно проверять. Правда, это не очень удобно, но надо подумать. Название: Re: Категория журналирования QLoggingCategory Отправлено: sergek от Февраль 20, 2023, 18:57 Так и сделал. В конструкторе класса использовал setProperty("rtu_via_tcp", true), при создании объекта проверяю obj.property("rtu_via_tcp").isValid().
Сделал и выбросил на помойку :) Ограничился фильтром QLoggingCategory::setFilterRules(QString("qt.modbus.warning = false")); Таким образом потеряю пару лишних предупреждений, но с этим можно мириться. |