记录SAS脚本

时间:2009-11-11 08:13:21

标签: logging sas

我一直在开发大量的Java,PHP和Python。所有这些都提供了很棒的日志包(分别是Log4J,Log或logging)。调试应用程序时,这是一个很好的帮助。特别是如果应用程序运行无头。

现在,我有一个SAS脚本应该作为存储过程运行。但由于某种原因,一旦它作为存储过程运行,执行似乎运行得非常慢。我想做一些日志记录,看看应用程序正在做什么。并且正在进行时。所以我可以查明导致执行缓慢的代码。

我一直在寻找SAS中的一些日志记录解决方案,但到目前为止还没有找到任何东西。有什么我可以使用的吗?附加到文本文件将是一个良好的开端。但是,登录到Windows事件日志或远程syslog服务会更好。

3 个答案:

答案 0 :(得分:3)

有一个函数“ntlog”可以写入Windows事件日志。它在this page上进行了描述。

答案 1 :(得分:3)

另一种可能性是将日志重定向到文件。例如:

%let logPath = d:\sas.log;

/* Delete the old log */

data _null_;
    logFile = "mylog";
    rc = filename(logFile,"&logPath");
    if rc = 0 and fexist(logFile) then
       rc = fdelete(logFile);
    rc = filename(logFile);
run;

option nonotes nosource;

/* Redirect log to file */

proc printto log = "&logPath";
run;

%put >> File logging started <<;

%put ERROR: An error occured (macro);
%put WARNING: A warning occured (macro);

data _null_;
  put "ERROR: An error occured inside my data step";
run;

%put >> File logging ended <<;

/* Turn standard logging on again */

proc printto; 
run;

option notes source;

%put NOTE: Back to session log;

答案 2 :(得分:2)

在support.sas.com上快速搜索给了我这个链接。

使用说明34114:默认情况下创建详细的SAS®存储过程服务器日志

http://support.sas.com/kb/34/114.html