Ecco un altro approccio, fino all'OP per scegliere quale preferisce.
Quando compreso il codice qui sotto nel file .py __init__
prima di qualsiasi altro codice, messaggi stampati con print
e gli eventuali errori non saranno più registrati in Log.txt di Ableton, ma di file separati sul 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
(per Mac, modificare #username#
sul nome della cartella utente.Su Windows il percorso della cartella utente avrà un formato diverso)
Quando si aprono i file in un editor di testo che aggiorna il contenuto quando il file su disco viene modificato (esempio per Mac: TextEdit non fa altro che TextWrangler) , vedrai i log aggiornati in tempo reale.
Considerazioni: questo codice è stato copiato principalmente dagli script superficie di controllo liveAPI da Nathan Ramella
+1 per la parte "linea tamponata". Questo è esattamente quello che stavo cercando e funziona come un fascino. – rein
Utilizzando Python 3.4.3 quando eseguo 'open ('file.txt', 'w', 1)' Ricevo il buffering di riga corretto. Ma se faccio qualcosa di più grande (volevo 'open ('file.txt', 'w', 512)') bufferizza l'intero 'io.DEFAULT_BUFFER_SIZE' di 8192. È un bug Python, un bug di Linux o un Bug ID10t? –