¿Dónde escribe QGIS sus mensajes de registro de errores?

22

Quiero leer y copiar el registro de errores por los bloqueos que estoy experimentando en QGIS 2.0. El error que estoy obteniendo bloquea a QGIS, así que tengo que ctrl-alt-del. Puedo ver el último mensaje en el panel, pero no puedo copiarlo o desplazarme hacia atrás para ver los mensajes anteriores. Cuando lo vuelvo a abrir, el panel de mensajes de registro se ha restablecido a cero (inicio de QGIS, etc.), por lo que todos los mensajes de error de transformación que quiero desaparecen.

¿Los mensajes de registro más antiguos están escritos en el disco en algún lugar?

    
pregunta IanS 30.01.2014 - 14:26

4 respuestas

23

QGIS no escribe sus mensajes de registro en un archivo de forma predeterminada.

Si tienes una compilación de depuración (normalmente las noches son), se escriben en la salida estándar. Eso significa que si lo ejecutas en una terminal en Linux, verás los mensajes allí. En Windows creo que hay una herramienta llamada Herramientas de depuración para Windows o similar que puede interceptar los mensajes.

Una alternativa es usar algunos scripts de python mínimos. Cada mensaje es emitido como una señal Qt. Por lo tanto, podemos conectarnos a estas señales y escribirlas en un archivo. Simplemente copie el siguiente comando en su consola de Python

Para 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)

O para 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)

Cuando ejecute este código, la salida se escribirá en /tmp/qgis.log .

    
respondido por el Matthias Kuhn 23.05.2015 - 22:48
16

En QGIS, vaya a: Ver > Paneles > Mensajes de registro

Asegúrese de que la casilla esté marcada.

Es muy simple: no estoy seguro de por qué la comunidad de intercambio de Stack hace que la respuesta sea tan difícil de encontrar a veces.

    
respondido por el michaeltomiak 06.10.2015 - 11:50
7

Procesando = > Opciones

Debe comprobar esto: 'Mantener el cuadro de diálogo abierto después de ejecutar un algoritmo'

después de eso, puedes copiar más allá del registro de errores

    
respondido por el elmo 18.05.2015 - 10:23
1

Puede parecer obvio, pero me parece útil hacer que el cuadro de mensajes de QGIS sea un diálogo flotante para que pueda extenderlo de arriba a abajo de su pantalla. Esto le permitiría ver e imprimir más mensajes en la pantalla cuando se bloquea QGIS. Lo sentimos, no sé dónde QGIS escribe estos mensajes.

    
respondido por el AMK 18.05.2015 - 16:02

Lea otras preguntas en las etiquetas