2016-02-19 58 views
3

我看到SAS存儲過程(STP)中的日誌信息僅在完成STP後才附加到.log文件。我想通過拖拽STP日誌文件來監視長時間運行的STP。是否有辦法讓SAS立即寫入日誌信息而不是這種延遲的行爲?SAS 9.4存儲過程日誌文件監視

例子:我啓動了一個STP(stp_test.sas)並且結束了日誌文件。最後一行看到的是:

2016-02-19T11:05:03,630 INFO [00000004] :sassrv - [00000003] STPXUTL Execute using file path: /SAS/SASHome/SASFoundation/9.4/sasstp/stp_test.sas 

只有完成後(53秒後)我得到以下下一行包括特別是對我很重要的注意事項。

2016-02-19T11:05:56,634 INFO [00079501] 8:sasmi - STP: 3: Execution Complete. Status=4 
2016-02-19T11:05:56,678 INFO [00079501] 8:sasmi - NOTE: %INCLUDE (level 1) file /SAS/SASHome/SASFoundation/9.4/sasstp/stp_test.sas is file /SAS/SASHome/SASFoundation/9.4/sasstp/stp_test.sas. 
2016-02-19T11:05:56,679 INFO [00079501] 8:sasmi - NOTE: PROCEDURE SQL used (Total process time): 
2016-02-19T11:05:56,679 INFO [00079501] 8:sasmi -  real time   0.00 seconds 
2016-02-19T11:05:56,679 INFO [00079501] 8:sasmi -  cpu time   0.01 seconds 

回答

0

嘗試logparm上的write=immediate選項。

我們將其指定爲啓動參數,當我們推出SAS:

-logparm="write=immediate" 

,但你可以在運行時指定它。

+0

這並沒有改變STP的行爲。 – user2360416

1

您可以在PROC printto包裹代碼:現在

filename stplog temp; 
proc printto log=stplog;run; 
*your stp goes here; 
proc printto;run; 

,日誌將被寫入到存儲過程服務器的工作目錄這個臨時文件。正如羅伯特所建議的那樣,我仍然會添加write = immediate。