我正在使用Pharo 3,我使用Transcript记录操作。
然而,当前缓冲区的大小对我的需求来说很短。怎么增加呢?有characterLimit,但这是一个方法常量,因此在不更改核心包的情况下不易设置。
我不想使用NonInteractiveTranscript,因为我想留在图像中。
答案 0 :(得分:2)
不,没有其他方法可以更改Transcript的缓冲区长度,然后修改#characterLimit
(通常为ThreadSafeTranscript
)。但是,尝试检查ThreadSafeTranscript allInstances
,您将看到底层流更长(50000是写入限制)。所以,无论你打印到Transcript,实际上并没有丢失,只是不可见。
话虽如此,使用Transcript进行大量输出通常不是一个好主意,因为:
重复调用时脚本非常慢:
尝试
1 to: 10000 do: [ :i | Transcript show: i ]
VS。
Transcript show: (String streamContents: [ :stream |
1 to: 10000 do: [ :i | stream nextPutAll: i asString ] ])
你不能在其他地方使用输出(例如写入文件或传递给方法)
在我看来,Transcript可以用于偶尔的快速调试,但不应该用于任何相关的应用程序。