I have a large Mathematica notebook that uses Print[]
commands periodically to output runtime messages. This is the only output (aside from exported files) that
According to the documentation, Print
outputs to the $Output channel which is a list of streams. So, at the beginning of the notebook,
strm = OpenWrite["output.log"];
AppendTo[ $Output, strm ];
and at the end of the notebook
Close[strm];
Note, if execution is interrupted prior to closing the stream, then you'll have to do it manually. Also, the above code will overwrite prior data in "output.log," so you may wish to use OpenAppend, instead.
Edit: to guarantee that Abort
will be called, consider using one of the techniques outlined here.
You want the PutAppend command.