我知道PROC PRINTTO LOG="C:TEMP\SAS LOG.TXT"会输出SAS程序日志的全部内容,但这实际上也使程序运行时的日志窗口为空,因此我无法查看SAS程序的“实时”进度。
我希望最终保存日志以供进一步审查,但我还希望在运行测试时实时关注正在发生的事情--是否有一种方法可以打印日志并同时保持日志内容的活动状态?
发布于 2016-02-25 04:57:19
如果您正在使用Enterprise Guide或任何EBI客户端,则可以在应用程序服务器上启用日志记录。这将为您提供一个日志副本以及您的常规日志。但不适用于基本SAS ..
步骤:
导航至: sasconfig\Lev1\SASApp\WorkspaceServer
编辑:如果您乐于接受顺序日志记录,而不是同时日志记录,我会推荐这个question的答案中概述的方法(基本上是读回外部日志文件并打印到会话日志)。
发布于 2016-02-25 10:09:10
我同意@Reeza关于尝试-altlog的建议。不幸的是,在调用SAS时需要指定此选项。一种方法是在您的SAS配置文件中添加一行(我的在C:\Program Files\SASHome\SASFoundation\9.4\nls\en\sasv9.cfg):中
-altlog d:\junk\MySASaltlog.log每次启动SAS时,除了您的日志窗口外,它还会写入MySASaltlog.log。每个会话的MySASaltlog.log都会被覆盖。您必须通过一些步骤为每个会话生成单独的日志。
我认为如果您可以在SAS会话期间在options语句上指定altlog,那就太好了,例如:
options altlog="d:\junk\MySASaltlog_%sysfunc(today(),yymmddn8)"; 如果您同意,请喜欢/提升我的SAS气球软件的想法,提出这一点:https://communities.sas.com/t5/SASware-Ballot-Ideas/Allow-ALTLOG-to-be-specified-on-OPTIONS-statement/idi-p/219628
PC SAS的另一种方法是使用DM语句。提交以下语句会将当前日志窗口的内容复制到MyLog_YYYYMDD.log中:
dm "log; file ""d:\junk\MyLog_%sysfunc(today(),yymmddn8).log"" replace;";您也可以将该命令分配给一个功能键。
最后一个问题是,为什么要保存交互式SAS会话中的日志。大多数人使用交互式会话来开发代码。然后,当他们完成后,他们批量提交程序以进行最终的生产运行。这样做的好处是可以从干净的SAS会话开始,并自动写入日志文件。使用这种方法,保存交互式会话中的日志文件几乎没有什么用处。
https://stackoverflow.com/questions/35609395
复制相似问题