How to have sas log in both external location and

2019-02-26 01:43发布

问题:

I am using sas eg 5.1 version. right now I am routing my log details to an external file(text document) for record keeping. But while developing a code, I want the error log to appear in the sas egp log window also, so that it makes debugging faster and easy

So my question is how to have sas log details in both sas egp and in external file at the same time

I tried searching for it, but could not get the details.

Thanks in advance

回答1:

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.