There is no 'in session' programmable option to write the log to multiple destinations. However a decent 'hack' is to simply read your external log and write out to your session log as follows:
/* write to external log */
filename tmp "C:\temp\mylog.txt";
proc printto log=tmp; run;
/* now run your SAS code */
%put NOTE: processing lots of juicy SAS statements;
/* once done, return to normal logging */
proc printto log=log; run;
/* print previous log to current session */
data _null_;
infile tmp;
input; list;
run;
/* close filename */
filename tmp clear;
To ensure you always write the log out / get it back, you could even split the above into the following locations:

Other options:
An admin can enable logging on the application (workspace) server. This will capture all logs, from all users - which does have performance and storage implications! Steps as follows:
- Navigate to: [sasconfig]\Lev1\SASApp\WorkspaceServer
- Rename logconfig.xml to logconfig.xml.orig
- Rename Logconfix.trace.xml to
logconfig.xml
- Restart the object spawner
Another approach, as proposed by @Quentin / @Reeza in this (very similar) question, is to use the -altlog
option at SAS invocation.
Finally, if it suits, you could look at enabling the EG project log.