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
.