I am seeing that the log information from a SAS Stored Process (STP) is appended to the .log file only upon completion of the STP. I want to monitor long running STPs by tailing the STP log file. Is there a way to get SAS to write the log information immediately instead of this delayed behavior?
Example: I kick off an STP (stp_test.sas) and tail the log file. The last line see is:
2016-02-19T11:05:03,630 INFO [00000004] :sassrv - [00000003] STPXUTL Execute using file path: /SAS/SASHome/SASFoundation/9.4/sasstp/stp_test.sas
Only upon completion (53 seconds later) I get the following next lines including specifically the NOTES that are important to me.
2016-02-19T11:05:56,634 INFO [00079501] 8:sasmi - STP: 3: Execution Complete. Status=4
2016-02-19T11:05:56,678 INFO [00079501] 8:sasmi - NOTE: %INCLUDE (level 1) file /SAS/SASHome/SASFoundation/9.4/sasstp/stp_test.sas is file /SAS/SASHome/SASFoundation/9.4/sasstp/stp_test.sas.
2016-02-19T11:05:56,679 INFO [00079501] 8:sasmi - NOTE: PROCEDURE SQL used (Total process time):
2016-02-19T11:05:56,679 INFO [00079501] 8:sasmi - real time 0.00 seconds
2016-02-19T11:05:56,679 INFO [00079501] 8:sasmi - cpu time 0.01 seconds
Hi,
Maybe I am not the most appropriate person to answer your question, but let me give it a try:
If you need additional details on the log, maybe you would like to increase your log level to debug (and/or enable the macro debug options on the code).
Still, this might add too much information on your logs and not the information you expect, because SAS only writes to the log when a procedure is finished or with explicit statements in your code.
Said this, and as common programming procedure, what I would really advise you is to include those explicit statements (eg %put statements) to write extra lined on your log or a different log file, if you will
The stored process server logging is controled by the log4sas facility. The file that allows you to control this is most likely logconfig.xml (but could be different, under control of the logconfigloc SAS invocation option).
There is one parameter that may help you achieve what you want. Add this to logconfig.xml file:
<param name="ImmediateFlush" value="TRUE"/>
Maybe also the SAS option UNBUFLOG will help but I am uncertain how well that plays with log4sas. Seems worth a try. You will not get log lines any faster than that.
Be aware of possible trade-offs like additional processing and I/O overhead.
Hope this helps.
Thanks jklaverstijn for the suggestion. This sounds promising I will try that. In case it does not work I have decorated all STPs to proc printto a unique file name.
Registration is now open for SAS Innovate 2025 , our biggest and most exciting global event of the year! Join us in Orlando, FL, May 6-9.
Sign up by Dec. 31 to get the 2024 rate of just $495.
Register now!
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.