Ответ 1
В соответствии с документация, Print
выводится на $Output
, который представляет собой список потоков. Итак, в начале ноутбука
strm = OpenWrite["output.log"];
AppendTo[ $Output, strm ];
и в конце ноутбука
Close[strm];
Обратите внимание, что если выполнение прерывается до закрытия потока, вам нужно будет сделать это вручную. Кроме того, вышеуказанный код перезапишет предыдущие данные в "output.log", поэтому вы можете вместо этого использовать OpenAppend
.
Изменить: чтобы гарантировать, что Abort
будет вызван, рассмотрите возможность использования одного из методов, описанных здесь.