首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SAS:同时打印到日志和查看实时日志窗口

SAS:同时打印到日志和查看实时日志窗口
EN

Stack Overflow用户
提问于 2016-02-25 01:47:56
回答 2查看 2.6K关注 0票数 2

我知道PROC PRINTTO LOG="C:TEMP\SAS LOG.TXT"会输出SAS程序日志的全部内容,但这实际上也使程序运行时的日志窗口为空,因此我无法查看SAS程序的“实时”进度。

我希望最终保存日志以供进一步审查,但我还希望在运行测试时实时关注正在发生的事情--是否有一种方法可以打印日志并同时保持日志内容的活动状态?

EN

回答 2

Stack Overflow用户

发布于 2016-02-25 04:57:19

如果您正在使用Enterprise Guide或任何EBI客户端,则可以在应用程序服务器上启用日志记录。这将为您提供一个日志副本以及您的常规日志。但不适用于基本SAS ..

步骤:

导航至: sasconfig\Lev1\SASApp\WorkspaceServer

  • Rename

  • to logconfig.xml

  • Restart Logconfix.trace.xml to logconfig.xml

  • Restart object spawner

编辑:如果您乐于接受顺序日志记录,而不是同时日志记录,我会推荐这个question的答案中概述的方法(基本上是读回外部日志文件并打印到会话日志)。

票数 0
EN

Stack Overflow用户

发布于 2016-02-25 10:09:10

我同意@Reeza关于尝试-altlog的建议。不幸的是,在调用SAS时需要指定此选项。一种方法是在您的SAS配置文件中添加一行(我的在C:\Program Files\SASHome\SASFoundation\9.4\nls\en\sasv9.cfg):中

代码语言:javascript
复制
-altlog d:\junk\MySASaltlog.log

每次启动SAS时,除了您的日志窗口外,它还会写入MySASaltlog.log。每个会话的MySASaltlog.log都会被覆盖。您必须通过一些步骤为每个会话生成单独的日志。

我认为如果您可以在SAS会话期间在options语句上指定altlog,那就太好了,例如:

代码语言:javascript
复制
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中:

代码语言:javascript
复制
dm "log; file ""d:\junk\MyLog_%sysfunc(today(),yymmddn8).log"" replace;";

您也可以将该命令分配给一个功能键。

最后一个问题是,为什么要保存交互式SAS会话中的日志。大多数人使用交互式会话来开发代码。然后,当他们完成后,他们批量提交程序以进行最终的生产运行。这样做的好处是可以从干净的SAS会话开始,并自动写入日志文件。使用这种方法,保存交互式会话中的日志文件几乎没有什么用处。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35609395

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档