03-25-2013 12:07 PM
Hello all.. I have a problem.
I have several programs, 'program1', 'program2' etc, which shall be run in row. So first 'program1' and then 'program2' etc. I run my programs in batch mode and I have used the %include-statement to run program2 after program1.
My problem is that I want to save specific logs for each program.
How can I do that?
If the programs are for example:
I have tried with proc printto and dm-statements but have no luck..
Hope you can help me
// Best, Silas Skovsbo, Aarhus University, Denmark
03-25-2013 01:08 PM
PROC PRINTTO should be able to do this for you. What problems did you have with that approach?
proc printto log="d:\junk\logA.log" new; run; %include "d:\junk\A.sas"/source2; proc printto log="d:\junk\logB.log" new; run; %include "d:\junk\B.sas"/source2; proc printto; run;
You need to have /source2 on the %include statement to have it write to the log. And need NEW on the proc printto otherwise it will keep appending.
03-25-2013 04:06 PM
Thank you for the fast response.
Using /source2 helped a bit. Now I get the full log. But I do get the full log in one textile, logA.
This does not print two separate log-files for program A and one for program B.
Do you know how to get that? And can you make an exact example of it? Just with the mentioned data-statements above?
03-25-2013 02:22 PM
as suggested by @Quentin PRINTTO should do the trick. You could also submit the jobs individually using the OS scheduler. Other options include the use of the ALTLOG options and the use of DM statements to redirect the log.
03-28-2013 11:40 AM
in the answers I have seen I do not see the close for the printto
PROC Printto log="&Path\&Program..log"
personally I use
filename Project '.';
in my autoexec
and in programs:
can you guess I learned SAS on BigIron?
note that the extension is not needed, unless the prefix of the program name has digits
this has to be expanded and surrounded with quotes:
Ron Fehd logs maven