Logging 查看SAS代码的输出日志
我的团队中的一名成员正在使用SAS,当输入文件由于任何原因不正确时,他们的代码会返回“Errors”、“Invalid”、“Merge statements”、“Uninitialized”和“Warning”语句 在运行代码之后,我经常使用CTRL+F检查输出日志中的这些关键字,并相应地修改输入文件 可以想象,使用CTRL+F相当费劲 如果在输出的前面有任何上述语句,我希望代码在输出的末尾自动打印 我该怎么做?在哪里可以找到有关如何编程的信息Logging 查看SAS代码的输出日志,logging,sas,output,Logging,Sas,Output,我的团队中的一名成员正在使用SAS,当输入文件由于任何原因不正确时,他们的代码会返回“Errors”、“Invalid”、“Merge statements”、“Uninitialized”和“Warning”语句 在运行代码之后,我经常使用CTRL+F检查输出日志中的这些关键字,并相应地修改输入文件 可以想象,使用CTRL+F相当费劲 如果在输出的前面有任何上述语句,我希望代码在输出的末尾自动打印 我该怎么做?在哪里可以找到有关如何编程的信息 我正在使用SAS 9.1请考虑使用PROC PRI
我正在使用SAS 9.1请考虑使用
PROC PRINTTO
将日志重定向到一个文件。从此处运行此代码以查找您提到的字符串的任何匹配项:
filename logfl "<insert log filename here>" lrecl=32767;
/* Lrecl set high to ensure long lines are captured */
data _NULL_;
infile logfl;
input;
if index (_infile_,'ERROR:') then put _infile_;
else if index(_infile_,'WARNING') then put _infile_;
else if index(_infile_,'uninitialized') then put _infile_;
else if index(_infile_,'Merge statements') then put _infile_;
run;
它将匹配Uniniti
,Uniniti
等
代码将按照日志中的顺序简单地打印出感兴趣的行。您可以通过以下方式进一步改进代码:
- 将字符串放入一个单独的数据集或平面文件中(以防您找到更多想要查找的内容,并希望使代码更易于维护)
- 打印找到字符串的行号(输出
以及\u N\u
-首先测试,我不确定\u infle\u
是否会精确映射到行号)\u N\u
最后,许多人编写并发布了在线日志解析器/分析器/阅读器。其中一些任务与您上面的要求类似。有一个很好的列表,或者使用您选择的搜索引擎。这看起来很棒。多谢各位。我们将实现它,当我们运行它时,我将接受。没问题,我必须承认我已经有6个月没有在SAS中编程了,所以如果有任何问题,请询问,我希望能够提供帮助。您可以使用
查找而不是索引,它有修饰符i
,不区分大小写。我强烈建议升级到新版本,或要求您的站点升级。9.1大约有十年的历史,与9.2相比,它缺少一些重要的特征,更不用说9.3或9.4了。
if index(upcase(_infile_),'UNINITI') then put _infile_;