Aquí hay otro enfoque, hasta el OP para elegir cuál prefiere.
Al incluir el siguiente código en el archivo .py __init__
antes de cualquier otro tipo de código, los mensajes impresos con print
y cualquier error ya no se registran en Log.txt de Ableton, pero a los archivos separados en el disco:
import sys
path = "/Users/#username#"
errorLog = open(path + "/stderr.txt", "w", 1)
errorLog.write("---Starting Error Log---\n")
sys.stderr = errorLog
stdoutLog = open(path + "/stdout.txt", "w", 1)
stdoutLog.write("---Starting Standard Out Log---\n")
sys.stdout = stdoutLog
(para Mac, cambie #username#
por el nombre de su carpeta de usuario.En Windows, la ruta a su carpeta de usuario tendrá un formato diferente)
Cuando abre los archivos en un editor de texto que actualiza su contenido cuando se cambia el archivo en el disco (ejemplo para Mac: TextEdit no lo hace, pero TextWrangler sí) , verá que los registros se actualizan en tiempo real.
Créditos: este código se ha copiado en su mayoría de los guiones de superficie de control liveAPI por Nathan Ramella
1 para la parte "búfer de línea". Eso es exactamente lo que estaba buscando y funciona como un encanto. – rein
Usando Python 3.4.3 cuando hago 'abrir ('archivo.txt', 'w', 1)' obtengo el buffer de línea correcto. Pero si hago algo más grande (quería 'abrir ('archivo.txt', 'w', 512)') almacena el '' DEFAULT_BUFFER_SIZE' completo de 8192. ¿Es eso un error de Python, un error de Linux o un ID10t error? –