stdout をファイルに永続的にリダイレクトしようとしていますが、これを行うことについて見つけることができるすべての例には、標準出力グローバルを使用して let 内または with-open-file 内で行うことが含まれます。アプリケーション全体のリダイレクトを行う方法はありますか?
編集:標準出力でリダイレクトを実行しようとした方法は次のとおりです:
(Setf *log* (open "/Users/Mike/Desktop/some.txt" :direction :output :if-exists :append))
(Setf *standard-output* *log*)
(print "Test")
probe-file
これは REPL への出力を停止しますが、印刷呼び出しからのファイル (存在し、によって表示される) には何も表示されません。
編集:ドリブル機能を使用してみました:
(Dribble "/Users/Mike/Desktop/some.txt")
(format t "hello")
しかし、次のエラーが表示されます。
エラー: ジェネリック関数に適用できるメソッドがありません: #STANDARD-GENERIC-FUNCTION CCL::STREAM-SET-COLUMN #x30200006557F (引数を指定して呼び出された場合): (# 0) 実行中: #、プロセス Listener(11) 内。cmd-/ と入力して続行します。中止するには、cmd-\ で利用可能な再起動のリストを表示します。続行する場合: もう一度呼び出してみてください タイプ :? 他のオプションについて。