実行ログに含まれるエラーメッセージをプログラム的に特定したい

[OS] Windows
[リリース] ALL
[キーワード] LOG, ERROR, DATA STEP

[質問]

SASバッチジョブの実行ログ (.log) を特定フォルダ配下に保存しています。
実行ログにエラーが含まれる場合、対応を検討する必要がありますが、ログファイルのサイズ、数が大きく、テキストエディタによる手動検索は現実的ではありません。

SASを使って実行ログに含まれるエラーメッセージを網羅的に検索することは可能でしょうか?

[回答]

次の様なDATAステップを記述することで可能です。

このプログラムはc:¥logdir配下に含まれる、.logという拡張子を持つログファイルの内容を検索し、メッセージ先頭に「ERROR」が含まれる行の情報を出力します。

例)
%LET path=c:¥temp; 
FILENAME subdir PIPE "DIR &path.¥*.log /B /A-D-H";

DATA _tmp; 
  INFILE subdir TRUNCOVER; 
  LENGTH fname $255 fpath $32767 linemsg $255;
  INPUT fname $255.; 
  fpath=CATS("&path","¥",fname);
  read=fpath;
  INFILE dummy FILEVAR=read END=DONE TRUNCOVER DSD DLM="00"X;
    linenum=0;
  DO WHILE(NOT DONE);
    linenum+1;
    INPUT linemsg & $255.;
    IF UPCASE(SUBSTR(linemsg,1,5))="ERROR" THEN OUTPUT;
  END;
  LABEL fpath="ログファイル" linemsg="エラーメッセージ" linenum="行番号";
  DROP fname;
RUN;

PROC PRINT DATA=_tmp LABEL;
RUN;