NonstopServer(主にGuardian環境)の作業ログをサクラエディタで見る時のタイプ設定。
と、タイプ適用しない場合に使うマクロ。
自分で使っているものをほぼそのまま載せてます。
設定ファイル・マクロ内には多数コメントありますが、
記事内で設定の意味説明などはしていません。
タイプ設定
アウトライン解析ルール
NSSLOG.rul
;Mode=RegexReplace
;RegexOption=i
;CommentChar=#
# アウトライン解析ルール for NSS log
#-----------------------------------
# - teratermログを、行頭Timestamp有で出力している場合、アウトラインに行頭timestamp部分は表示しない
#
# 【留意事項】
# ファイルサイズが大きい場合、解析処理に時間がかかる
# - ルールを分けてタイプ切替で適用するルールを切り替えるなど検討するとよい
# - アウトライン解析はせず、検索⇒ブックマークを使う方法もある
#-----------------------------------
# ★ error
^(?:\[\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\.\d{3}\] ){0,1}(ERROR - .+) /// ★ $1 /// TACL,Lv=1
^(?:\[\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\.\d{3}\] ){0,1}\*(ABEND|ERROR)\*(.*) /// ★ $1 $2 /// TACL,Lv=1
#-----------------------------------
# TACL
# - 【前提】少なくともpromptが「VOL SUBVOL n>」の形式をとること
# - VOLより前に時刻・Node名等を出している場合にも対応
## 除外
# 【注意】入力⇒削除⇒入力 となってる行の場合、最初の入力に合致すると除外対象
# - 例「vol subvol n> volume $data fileinfo」⇒volumeコマンド行として除外
# - 例「vol subvol n> fileinfo history」⇒fileinfoコマンド行として出力
#
# + HISTORY, VOLUME, FC
^(?:\[\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\.\d{3}\] ){0,1}.*\$\w{1,7} \w{1,8} \d+> +(HISTORY|VOLUME|FC) /// Except
# + prompt以降にコマンドなし(半角スペースのみ含む)
^(?:\[\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\.\d{3}\] ){0,1}.*\$\w{1,7} \w{1,8} \d+> *$ /// Except
## 出力対象
### コマンド行
# - ソート利用有無でどちらかを有効化(使わない方は#でコメントアウト)
# * アウトラインのソート利用あり
# - コマンドを探しやすくするために、コマンドの最初3文字をアウトラインの最初に表示
# - アウトラインの表示順序をアルファベット順にして使う想定
^(?:\[\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\.\d{3}\] ){0,1}.*(\$\w{1,7} \w{1,8} \d+> )(.{1,3})(.*) /// $2 $1$2$3 /// TACL,Lv=1
# * アウトラインのソート利用なし
# - コマンド行がわかればよい場合はこちら
#^(?:\[\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\.\d{3}\] ){0,1}.*(\$\w{1,7} \w{1,8} \d+> )(.*) /// $1$2$3 /// TACL,Lv=1
### FUP COPYの結果の最終行
(\d+ RECORDS TRANSFERRED) /// $1 /// TACL,Lv=2
#-----------------------------------
# 一覧
## FILEINFO/FUP INFO 結果のVOL.SUBVOL部分
### vol.subvol
^(?:\[\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\.\d{3}\] ){0,1}(\$\w{1,7}\.\w{1,8}$) /// $1 /// LIST,Lv=2
### node.vol.subvol
^(?:\[\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\.\d{3}\] ){0,1}(\\\w{1,7}\.\$\w{1,7}\.\w{1,8}$) /// $1 /// LIST,Lv=2
#-----------------------------------
# oss環境
## コマンド行
^(?:\[\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\.\d{3}\] ){0,1}(/.+[^/]: .+) /// $1 /// oss,Lv=2
#-----------------------------------
# INLINE
## 除外
### ossでのls -la 結果
^(?:\[\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\.\d{3}\] ){0,1}[d-][rxw-]{9} /// Except
## 出力対象
### inlineprefixとspace以外の文字列がある行
# - inlineprefix : `-` 必要なら追加
^(?:\[\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\.\d{3}\] ){0,1}(- *\w[ \w\.\$]+) /// $1 /// INLINE,Lv=2
#-----------------------------------
# EMS emphasis
# - アウトライン表示順序がアルファベット順の場合のorderとして先頭に数字を入れている
# - ノード名プロセス名は環境に合わせて修正する。(必要に応じて追加・削除)
### system A
# 1★ env P
^(?:\[\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\.\d{3}\] ){0,1}(\d{2}-\d{2}-\d{2} \d{2}:\d{2}:\d{2} \\NODEA\.\$MGP01 +\*.+) /// 1★ $1 /// EMS,Lv=2
^(?:\[\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\.\d{3}\] ){0,1}(\d{2}-\d{2}-\d{2} \d{2}:\d{2}:\d{2} \\NODEA\.\$PP[A-Z\d]{2,3} +\*.+) /// 1★ $1 /// EMS,Lv=2
# 2★ env Q
^(?:\[\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\.\d{3}\] ){0,1}(\d{2}-\d{2}-\d{2} \d{2}:\d{2}:\d{2} \\NODEA\.\$MGQ01 +\*.+) /// 2★ $1 /// EMS,Lv=2
^(?:\[\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\.\d{3}\] ){0,1}(\d{2}-\d{2}-\d{2} \d{2}:\d{2}:\d{2} \\NODEA\.\$PQ[A-Z\d]{2,3} +\*.+) /// 2★ $1 /// EMS,Lv=2
### 9★ others
^(?:\[\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\.\d{3}\] ){0,1}(\d{2}-\d{2}-\d{2} \d{2}:\d{2}:\d{2} \\[A-Z\d\.\$, ]{15} \*.+) /// 9★ $1 /// EMS,Lv=2
【設定】
タイプ別設定 > スクリーン
アウトライン解析方法で「ルールファイル」選択し、ルールファイルを指定
正規表現keyword
NSSLOG.rkw
// 正規表現キーワード Ver1
RxKey[000]=FN2,/\$\w{1,7} \w{1,8} \d+(> |\.\.)/k
RxKey[001]=FN4,/\d{2}-\d{2}-\d{2} \d{2}:\d{2}:\d{2} \\[A-Z\d\$, ]{15} \*/k
RxKey[002]=FN3,/\d+ RECORDS TRANSFERRED/k
※カラー設定しなくても使えるように、色指定は検索文字列2,3,4を使っている。
【設定】
タイプ別設定 > 正規表現キーワード
「正規表現キーワードを使用する」にチェックし、
インポートでファイルから設定取り込み
表示サンプル
検索系マクロ
TACLプロンプト
- ブックマーク
SK_NSS_TACLプロンプトをマーク.js
// サクラエディタマクロ WSH(JScript)
// NSS TACLプロンプトをマーク
//(SETPROMPT BOTH 前提)
// 「$vol subvol n>」
// 検索文字列
var sKey = '\\$\\w{1,8} \\w{1,8} \\d+> *\\w+';
// 検索オプション
var iOption = 4 + 8 + 16 + 32;
iOption += 2048 + 4096;
// ブックマークの全解除
Editor.BookmarkReset( );
Editor.BookmarkPattern(sKey, iOption);
// ブックマークの一覧表示
Editor.BookmarkView( );
// -----------------------------------
// BookmarkPattern
// arg 3
// 下位bitから
// 1 1 単語単位で探す
// 2 2 英大文字と小文字を区別する
// 4 3 v 正規表現
// 8 4 v 見つからないときにメッセージを表示
//
// 16 5 v ダイアログを自動的に閉じる
// 32 6 v 先頭(末尾)から再検索する
//
// 7 - 11 なし
//
// 2048 12 v 検索キーを履歴に登録しない
// 4096 13 v 検索キー・オプションを元に戻す
- 検索
SK_NSS_TACLプロンプトを検索.js
// サクラエディタマクロ WSH(JScript)
// NSS TACLプロンプトを検索
//(SETPROMPT BOTH 前提)
// 「$vol subvol n>」
// 検索文字列
var sKey = '\\$\\w{1,8} \\w{1,8} \\d+> *\\w+';
// 検索オプション
var iOption = 4 + 8 + 16 + 32;
iOption += 2048;
Editor.SearchNext(sKey, iOption);
// -----------------------------------
// SearchNext
// arg 3
// 下位bitから
// 1 1 単語単位で探す
// 2 2 英大文字と小文字を区別する
// 4 3 v 正規表現
// 8 4 v 見つからないときにメッセージを表示
//
// 16 5 v ダイアログを自動的に閉じる
// 32 6 v 先頭(末尾)から再検索する
//
// 7 - 11 なし
//
// 2048 12 v 検索キーを履歴に登録しない
// 4096 13 検索キー・オプションを元に戻す
Enphasis
- ブックマーク
SK_NSS_EMS_Emphasisをマーク.js
// サクラエディタマクロ WSH(JScript)
// sakura v2.2.0.0~
// NSS EMS emphasis Eventをマーク
// 「yy-mm-dd HH:MM:SS \node.$pname *」
// 「yy-mm-dd HH:MM:SS \node.cpu,pid *」
// timestamp = fix 17
// process = var 16
// \node.$pname
// \node.cpu,pid
// 検索文字列
var sKey = '^(?:\\[\\d{4}(-\\d{2}){2} \\d{2}(:\\d{2}){2}\\.\\d{3}\\] ){0,1}';
sKey += '\\d{2}(-\\d{2}){2} \\d{2}(:\\d{2}){2} \\[A-Z\d\$, ]{15} \\*';
// 検索オプション
var iOption = 4 + 8 + 16 + 32;
iOption += 2048 + 4096;
// ブックマークの全解除
// Editor.BookmarkReset( );
Editor.BookmarkPattern(sKey, iOption);
// ブックマークの一覧表示
Editor.BookmarkView( );
// -----------------------------------
// BookmarkPattern
// arg 3
// 下位bitから
// 1 1 単語単位で探す
// 2 2 英大文字と小文字を区別する
// 4 3 v 正規表現
// 8 4 v 見つからないときにメッセージを表示
//
// 16 5 v ダイアログを自動的に閉じる
// 32 6 v 先頭(末尾)から再検索する
//
// 7 - 11 なし
//
// 2048 12 v 検索キーを履歴に登録しない
// 4096 13 v 検索キー・オプションを元に戻す
- 検索
SK_NSS_EMS_Emphasisを検索.js
// サクラエディタマクロ WSH(JScript)
// NSS EMS emphasis Eventを検索
// 「yy-mm-dd HH:MM:SS \node.$pname *」
// 「yy-mm-dd HH:MM:SS \node.cpu,pid *」
// timestamp = fix 17
// process = var 16
// \node.$pname
// \node.cpu,pid
// 検索文字列
var sKey = '^(?:\\[\\d{4}(-\\d{2}){2} \\d{2}(:\\d{2}){2}\\.\\d{3}\\] ){0,1}';
sKey += '\\d{2}(-\\d{2}){2} \\d{2}(:\\d{2}){2} \\[A-Z\d\$, ]{15} \\*';
// 検索オプション
var iOption = 4 + 8 + 16 + 32;
iOption += 2048;
Editor.SearchNext(sKey, iOption);
// -----------------------------------
// SearchNext
// arg 3
// 下位bitから
// 1 1 単語単位で探す
// 2 2 英大文字と小文字を区別する
// 4 3 v 正規表現
// 8 4 v 見つからないときにメッセージを表示
//
// 16 5 v ダイアログを自動的に閉じる
// 32 6 v 先頭(末尾)から再検索する
//
// 7 - 11 なし
//
// 2048 12 v 検索キーを履歴に登録しない
// 4096 13 検索キー・オプションを元に戻す