proc printto:日志和过程输出到同一文件不会将%put输出刷新到日志文件

时间:2017-11-27 15:32:59

标签: logging sas interactive

我正在尝试将日志和过程输出重定向到相同的目标文件,以便在交互式sas会话中使用,以便我可以在此文件上使用tail -f

所以,我做了

proc printo print = "/home/tq84/sas.log"; run;
proc printo log   = "/home/tq84/sas.log"; run;

我已将选项logparm设置为write=immediate

如果我尝试使用%put text;在日志中写入内容,则不会立即将其写入/home/tq84/sas.log

但是,当我执行一个简单的proc sql; quit;时,先前缓冲的日志输出将被刷新为/home/tq84/sas.log

我正在寻找一个关于如何将日志和过程输出写入同一文件的想法,以便在它们可用时立即刷新它们。

1 个答案:

答案 0 :(得分:4)

这适合我。

使用

开始sas
C:\temp>sas -logparm "write=immediate"
然后我发出:

proc printto print="c:\temp\test.log";
run;
proc printto log="c:\temp\test.log";
run;

我在Sublime Text中打开日志文件,在文件发生时刷新它。

然后提交:

%put HI THERE!;

在我发出PROC语句之前,它不会输出到日志。 (假设数据步骤也可以。)

如果我重新启动会话并重新排序PRINTTO

proc printto log="c:\temp\test.log";
run;
proc printto print="c:\temp\test.log";
run;

然后

%put HI THERE!;

尽快进入日志。