Russian Qt Forum

Qt => Установка, сборка, отладка, тестирование => Тема начата: Igors от Июль 04, 2019, 14:49



Название: qDebug
Отправлено: Igors от Июль 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 - всякий раз руками писать, что ли? Нет ли возможности задать глобально?

Спасибо


Название: Re: qDebug
Отправлено: sergek от Июль 04, 2019, 18:30
А так не подойдет?
Код:
qDebug("%s", "mytext") ;


Название: Re: qDebug
Отправлено: qate от Июль 04, 2019, 22:24
это на какой версии таймстапм появился ?
небыло такого никогда


Название: Re: qDebug
Отправлено: Авварон от Июль 05, 2019, 00:09
Небось где-то уже задается формат


Название: Re: qDebug
Отправлено: kuzulis от Июль 05, 2019, 08:58
+100500, см переменные окружения, конфиг-файлы и пр. (если не ошибаюсь, то там тож можно формат настроить)


Название: Re: qDebug
Отправлено: Igors от Июль 05, 2019, 10:37
А так не подойдет?
Код:
qDebug("%s", "mytext") ;
Подойдет для простых типов, где и (добрый старый)  printf устроит.

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

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


Название: Re: qDebug
Отправлено: qate от Июль 05, 2019, 12:58
Получил когда обновился с Qt 5.4 -> 5.12

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

ради теста - выполнить qDebug() от другого нового пользователя, там настроек qt не должно быть


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

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


Название: Re: qDebug
Отправлено: qate от Июль 05, 2019, 14:09
Я когда на 5.12 переходил OSX тоже обновил (сейчас 10.14.3). Осталось найти где это настраивается

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

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

опять не знаю, qDebug() редко пользую т.к. написал простою обертку надо stderr
мне сразу не понравилось что qDebug() ставит кавычки и неудобно писать портянки вида qDebug() << var1 << var2 << var3


Название: Re: qDebug
Отправлено: zhbr от Июль 05, 2019, 14:43
У меня по умолчанию все ок - и формат нормальный и переносов нет. винда qt 5.12.3


Название: Re: qDebug
Отправлено: kambala от Июль 05, 2019, 16:21
2019-07-04 14:44:43.538772+0300 MyApp[931:21982] — это NSLog() такое печатает по умолчанию. Значит где-то внутри qDebug() его вызывает.


Название: Re: qDebug
Отправлено: Igors от Июль 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