Đây là một cách tiếp cận khác, tối đa OP để chọn tùy chọn nào bạn thích.
Khi bao gồm cả mã dưới đây trong __init__
tập tin py trước khi các mã khác, các thông điệp được in với print
và bất kỳ lỗi nào sẽ không còn được đăng nhập để log.txt Ableton nhưng đến tập tin riêng biệt trên đĩa của bạn:
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
(dành cho Mac, thay đổi #username#
thành tên thư mục người dùng của bạn.Trên Windows đường dẫn đến thư mục người dùng của bạn sẽ có định dạng khác)
Khi bạn mở tệp trong trình chỉnh sửa văn bản làm mới nội dung khi tệp trên đĩa bị thay đổi (ví dụ: Mac: TextEdit không nhưng TextWrangler có) , bạn sẽ thấy nhật ký được cập nhật trong thời gian thực.
Tín: Mã này đã được sao chép chủ yếu là từ các kịch bản kiểm soát bề mặt liveAPI bởi Nathan RAMELLA
1 cho phần "dòng đệm". Đó là chính xác những gì tôi đang tìm kiếm và nó hoạt động như một sự quyến rũ. – rein
Sử dụng Python 3.4.3 khi tôi làm 'mở ('file.txt', 'w', 1)' Tôi nhận được dòng đệm thích hợp. Nhưng nếu tôi làm bất cứ điều gì lớn hơn (tôi muốn 'mở ('file.txt', 'w', 512)') nó đệm toàn bộ 'io.DEFAULT_BUFFER_SIZE' của 8192. Đó có phải là lỗi Python, lỗi Linux hoặc một Lỗi ID10t? –