Size: a a a

2020 January 23

VS

Vladimir Suisei in Qt
Mr.Mait
Испытал на линуксе, покрайнем мере у меня пишет все туда.
Если волнует время открытия и закрытия файла. То в самом хандлере форматируй сообщение
const QString msg = qFormatLogMessage(type, context, message);

А потом это сообщение передавай в очередь потока. Там в очереди открывай файл, пиши и закрывай
Что значит передавай в очередь потока
источник

M

Mr.Mait in Qt
Vladimir Suisei
Что значит передавай в очередь потока
Просто в отладочные сообщения могут писать разные потоки. Чтобы не было каши в файле и не возиться с мьютексами, можно же сделать очередь в потоке.

Вот минимальный пример с глобальной переменной файла https://pastebin.com/cBZmqt7P если я правильно понял
источник

VS

Vladimir Suisei in Qt
Mr.Mait
Просто в отладочные сообщения могут писать разные потоки. Чтобы не было каши в файле и не возиться с мьютексами, можно же сделать очередь в потоке.

Вот минимальный пример с глобальной переменной файла https://pastebin.com/cBZmqt7P если я правильно понял
Ок, попробую
источник

VS

Vladimir Suisei in Qt
А можно QFile как-то прировнять к stderr?
источник

AE

Alexey Edelev in Qt
Можно
источник

AE

Alexey Edelev in Qt
Замени stderr дескриптором файла
источник

AE

Alexey Edelev in Qt
Это глобальный статик поинтер
источник

VS

Vladimir Suisei in Qt
Напишите как правильно это сделать плз
источник

M

Mr.Mait in Qt
Vladimir Suisei
А можно QFile как-то прировнять к stderr?
QFile file; 
file.open(stderr, QIODevice::WriteOnly);

Можно и так еще, но это не файл
QTextStream stream(stderr); 
   stream << message << endl;

Как раз Qt стиль, все дебаг сообщения выводятся в stderr, поэтому в креаторе сообщения красные :)
источник

VS

Vladimir Suisei in Qt
Mr.Mait
QFile file; 
file.open(stderr, QIODevice::WriteOnly);

Можно и так еще, но это не файл
QTextStream stream(stderr); 
   stream << message << endl;

Как раз Qt стиль, все дебаг сообщения выводятся в stderr, поэтому в креаторе сообщения красные :)
Спасибо
источник

VS

Vladimir Suisei in Qt
qSetMessagePattern

Он же не парсит каждый раз строку при выводе, а 1 раз делает и как-то запоминает?
источник

VS

Vladimir Suisei in Qt
Хотя с другой стороны как ему запоминать... Но наверное там простой парсинг поэтому особо не замедлится
источник

M

Mr.Mait in Qt
Vladimir Suisei
qSetMessagePattern

Он же не парсит каждый раз строку при выводе, а 1 раз делает и как-то запоминает?
Устанавливаешь паттерн один раз. И чтобы по паттерну форматировать, ты вызываешь qFormatLogMessage если у тебя свой хандлер.

https://code.woboq.org/qt5/qtbase/src/corelib/global/qlogging.cpp.html#_Z17qFormatLogMessage9QtMsgTypeRK18QMessageLogContextRK7QString
источник

M

Mr.Mait in Qt
Запоминает один раз паттерн, но при каждом форматировании qFormatLogMessage в цикле парсит этот паттерн. Ссылка выше
источник

VS

Vladimir Suisei in Qt
Mr.Mait
Запоминает один раз паттерн, но при каждом форматировании qFormatLogMessage в цикле парсит этот паттерн. Ссылка выше
Спасибо
источник

M

Michael in Qt
В линуксе иконки приложения, изображения и т.д засовывать в qrc или устанавливать по какому-то определенному пути?
источник

AE

Alexey Edelev in Qt
Второе
источник

M

Michael in Qt
Alexey Edelev
Второе
а qml файлы?
источник

AE

Alexey Edelev in Qt
источник

AE

Alexey Edelev in Qt
Michael
а qml файлы?
Как больше нравится
источник