巨大的日志大小导致企业指南崩溃



我使用的是企业指南4.2(没有选择)。

我正在使用PROC APPEND将大约80k+观察值附加到SQL Server表。我认为数据格式存在一些问题(例如变量长度不匹配),但它执行得很好,表也更新了。然后,企业指南给了我以下消息:

日志(af771r01 (Process Flow))的内容太大,无法显示。窗口将关闭,但内容将保留在项目中。

通过将日志重定向到一个虚拟文件,我能够成功地禁用日志:

** The Append Proc below outputs 80k+ lines (in theory) to the log, crashing EG 4.2;
** This statement will temporarily disable logging;
FILENAME JUNK DUMMY;
PROC PRINTTO
     LOG=JUNK;
RUN;
** ========================================================
** Archive Summarized Enrollment Data
** ========================================================;
PROC APPEND BASE = Archive.MnthlyMbrCmpArch (
                       SASDATEFMT=(SYS_SRC_LOAD_DT='mmddyy10.')
                   )
            DATA = Work.R1_MBR_ENRL_ARCHIVE;
RUN;
** Reenable logging;
PROC PRINTTO;
RUN;

这可以防止EG崩溃,但是我丢失了所有的警告和错误消息。我正在尝试调试语句,所以我想要警告和错误,我只是不想要一个泛滥的日志。

是否有一种方法可以部分禁用日志记录而不完全关闭它?或者是否有一种方法将日志重定向到一个文件,以便EG在试图不打开它时不会崩溃?

我是SAS的新手,我愿意接受任何建议,即使他们不直接回答问题。

是的,您可以通过在FILENAME语句中指定路径(而不是说DUMMY,它指向一个不存在的文件)将日志重定向到一个文件:

FILENAME JUNK 'path/file-name.log';

当然,你必须有"写"权限到你指定的位置

您可以使用:

来抑制日志中的大量信息。
options nonotes nonotes2;

和/或:

options nomprint nomlogic nosymbolgen nomacrogen; /* IF CODE CONTAINS MACROS */

错误仍然会被打印到屏幕上,但是你将没有什么信息来调试它们,除非你重新打开日志记录。

一些SAS文档:http://support.sas.com/documentation/cdl/en/basess/58133/HTML/default/viewer.htm#a001906177.htm

最新更新