Где QGIS записывает свои сообщения в журнал ошибок?


33

Я хочу прочитать и скопировать журнал ошибок для сбоев, которые я испытываю в QGIS 2.0. Ошибка, которую я получаю, зависает QGIS, поэтому я должен ctrl-alt-del. Я вижу последнее сообщение на панели, но не могу скопировать его или прокрутить назад, чтобы увидеть предыдущие сообщения. Когда я снова открываю его, панель сообщений журнала обнуляется (запуск QGIS и т. Д.), Поэтому все нужные мне сообщения об ошибках преобразования исчезли.

Старые сообщения журнала записаны на диск где-нибудь?

Ответы:


31

QGIS по умолчанию не записывает свои сообщения журнала в файл.

Если у вас есть отладочная сборка (обычно есть ночные), они записываются в стандартный вывод. Это означает, что если вы запустите его в терминале Linux, вы увидите там сообщения. В Windows я думаю, что есть инструмент под названием «Средства отладки» для Windows или аналогичный, который может перехватывать сообщения.

Альтернатива - использовать минимальные скрипты на Python. Каждое сообщение отправляется как сигнал Qt. Поэтому мы можем подключиться к этим сигналам и записать их в файл. Просто скопируйте следующую команду в вашу консоль Python

Для QGIS 3:

filename = '/tmp/qgis.log'

def write_log_message(message, tag, level):
    with open(filename, 'a') as logfile:
        logfile.write('{tag}({level}): {message}'.format(tag=tag, level=level, message=message))

QgsApplication.messageLog().messageReceived.connect(write_log_message)

Или для QGIS 2:

filename = '/tmp/qgis.log'

def write_log_message(message, tag, level):
    with open(filename, 'a') as logfile:
        logfile.write('{tag}({level}): {message}'.format(tag=tag, level=level, message=message))

QgsMessageLog.instance().messageReceived.connect(write_log_message)

Когда вы запустите этот код, результат будет записан в /tmp/qgis.log.


Там должна быть пустая строка между концом определения функции и в последней строке для консоли Python , чтобы быть счастливым с копией / вставить
— Рафаил

21

Хотя это не поможет решить эту конкретную проблему, если вы просто хотите просматривать журналы во время выполнения (т. Е. QGIS не падает), вы можете включить панель «Сообщения журнала».

В QGIS перейдите в: Вид> Панели> Журналы сообщений.

Убедитесь, что флажок установлен.


9
Пожалуйста, прочитайте вопрос еще раз.
— Стефан

Как вы получаете обратно вкладки в панели сообщений журнала, если вы потеряли пару?
— user32882

+1, так как это правильный ответ. Комментарий о сообществе Stackexchange не соответствует действительности.
— Гжегож Оледзки

8

Обработка => Параметры

Вы должны проверить это: «Держите диалог открытым после запуска алгоритма»

после этого вы можете скопировать мимо журнала ошибок

введите описание изображения здесь


1

Может показаться очевидным, но я нашел полезным сделать окно сообщений QGIS плавающим диалогом, чтобы вы могли расширять его сверху вниз на экране. Это позволит вам видеть и распечатывать больше сообщений на экране при сбое QGIS. Извините, я не знаю, где QGIS пишет эти сообщения.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.