ログを外部ファイルに保存する際のファイル名指定について

[OS] ALL
[リリース] ALL, SAS9.1以降(LOGPARMシステムオプション)
[キーワード] Base, log, file name, LOGPARM

[質問]

バッチモードでSASを利用する際、実行ログファイル名に日付や時間などを含めることはできますか。

[回答]

SAS 8.2の場合、実行ログのファイル名を任意に指定するには、-LOGシステムオプションでファイル名を明示的に指定する必要があります。
つまり、日付などを付加した「saslog_yyyymmdd.log」というファイル名で実行ログを保存するには、オペレーティングシステムの機能などを利用して、あらかじめファイル名を指定します。

たとえばWindowsでは、取得した日付をファイル名に含めるには、次のようなコマンドバッチを記述する必要があります(※ LOGNAME=の行は、改行せずに1行で記述してください)。


@ECHO OFF
SET LOGNAME="saslog_%date:~2,4%%date:~7,2%%date:~10,2%.log"
"C:¥Program Files¥SAS Institute¥SAS¥V8¥nls¥ja¥sas.exe" "program.sas" -log %logname%

SAS 9.1では、実行ログファイル名の作成機能が追加され、このような作業が容易になりました。 たとえば、「saslog_yyyymmdd.log」 というファイル名は、-LOG、-LOGPARMシステムオプションを利用して、以下のように記述することができます。


  -log "saslog_#Y#m#d.log" -logparm "rollover=session"

この他にも、ログファイルに関する多数のオプションが用意されています。詳細については、オンラインドキュメントなどをご参照ください。