Russian Qt Forum
Ноябрь 22, 2024, 11:26 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: qDebug  (Прочитано 7400 раз)
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« : Июль 04, 2019, 14:49 »

Добрый день

1)
Код:
qDebug() << "mytext";
Выводит
Цитировать
2019-07-04 14:44:43.538772+0300 MyApp[931:21982] mytext
Мне абсолютно не нужен timestamp и.т.п, я хочу просто иметь в консоли то что я туда послал. т.е. "mytext" - и все. Пробовал вставлять
Код:
qSetMessagePattern("{message}"); 
туда-сюда (до инициализации приложения и.т.п.) - не имеет эффекта. Как избавиться от этого навязчивого стервиса?

2) Печатает \n, \t и др вместо чтобы переносить строки, вставлять табы и.т.п. В букваре нашел
Код:
qDebug().noquote() << ...
Так что этот noquote - всякий раз руками писать, что ли? Нет ли возможности задать глобально?

Спасибо
Записан
sergek
Гипер активный житель
*****
Offline Offline

Сообщений: 872


Мы должны приносить пользу людям.


Просмотр профиля
« Ответ #1 : Июль 04, 2019, 18:30 »

А так не подойдет?
Код:
qDebug("%s", "mytext") ;
Записан

Qt 5.13.0 Qt Creator 5.0.1
Win10, Ubuntu 20.04
qate
Супер
******
Offline Offline

Сообщений: 1177


Просмотр профиля
« Ответ #2 : Июль 04, 2019, 22:24 »

это на какой версии таймстапм появился ?
небыло такого никогда
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #3 : Июль 05, 2019, 00:09 »

Небось где-то уже задается формат
Записан
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #4 : Июль 05, 2019, 08:58 »

+100500, см переменные окружения, конфиг-файлы и пр. (если не ошибаюсь, то там тож можно формат настроить)
« Последнее редактирование: Июль 05, 2019, 09:00 от kuzulis » Записан

ArchLinux x86_64 / Win10 64 bit
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #5 : Июль 05, 2019, 10:37 »

А так не подойдет?
Код:
qDebug("%s", "mytext") ;
Подойдет для простых типов, где и (добрый старый)  printf устроит.

это на какой версии таймстапм появился ?
небыло такого никогда
Получил когда обновился с Qt 5.4 -> 5.12

+100500, см переменные окружения, конфиг-файлы и пр. (если не ошибаюсь, то там тож можно формат настроить)
Це "взагалi" Улыбающийся
Записан
qate
Супер
******
Offline Offline

Сообщений: 1177


Просмотр профиля
« Ответ #6 : Июль 05, 2019, 12:58 »

Получил когда обновился с Qt 5.4 -> 5.12

вот ведь терпел ! )
нет такого поведения на 5.12

ради теста - выполнить qDebug() от другого нового пользователя, там настроек qt не должно быть
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #7 : Июль 05, 2019, 13:34 »

ради теста - выполнить qDebug() от другого нового пользователя, там настроек qt не должно быть
Так может это настройки консоли (а не Qt)? Когда сыпятся системные сообщения - у них тоже эта лабуда (timestamp и.т.п). Я когда на 5.12 переходил OSX тоже обновил (сейчас 10.14.3). Осталось найти где это настраивается

А с п.2 что? Нет ничего лучшего чем noquote ?
Записан
qate
Супер
******
Offline Offline

Сообщений: 1177


Просмотр профиля
« Ответ #8 : Июль 05, 2019, 14:09 »

Я когда на 5.12 переходил OSX тоже обновил (сейчас 10.14.3). Осталось найти где это настраивается

так это даже не венда ?
хз OSX не использовал

А с п.2 что? Нет ничего лучшего чем noquote ?

опять не знаю, qDebug() редко пользую т.к. написал простою обертку надо stderr
мне сразу не понравилось что qDebug() ставит кавычки и неудобно писать портянки вида qDebug() << var1 << var2 << var3
Записан
zhbr
Гость
« Ответ #9 : Июль 05, 2019, 14:43 »

У меня по умолчанию все ок - и формат нормальный и переносов нет. винда qt 5.12.3
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #10 : Июль 05, 2019, 16:21 »

2019-07-04 14:44:43.538772+0300 MyApp[931:21982] — это NSLog() такое печатает по умолчанию. Значит где-то внутри qDebug() его вызывает.
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #11 : Июль 06, 2019, 05:21 »

Пункт 1 можно уговорить так
Код
C++ (Qt)
void myMessageOutput(QtMsgType type, const QMessageLogContext &context, const QString &msg)
{
fprintf(stderr, "%s\n", msg.toLocal8Bit().constData());
}
 
int main( int argc, char ** argv )
{
qInstallMessageHandler(myMessageOutput);
...
 
Если этот handler не установлен то вызывается системный, который на моей платформе рисует timestamp и.т.п.

С п.2 - чисто Qt-шные дела, не нашел как "подлезть". Пример
Код:
qDebug() << QString("test1\ntest2");
выхлоп
Цитировать
test1\ntest2
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.073 секунд. Запросов: 23.