Phantis サンプルスクリプト集
==========================

このアーカイブには、Phantis のスクリプト機能を試すためのサンプルスクリプトが入っています。
簡単な自動化から、ログ解析・ハイライト・出力まで、いろいろな使い方の例を収録しています。


■ 使い方
--------
1. このアーカイブを展開します。
2. sample_scriptsフォルダ内の .js ファイルを Phantis の scripts フォルダに配置します。
3. Phantis のスクリプトメニューから実行してください。

※ スクリプトによっては、ファイルを開いていないと実行できません。
※ 一部のスクリプトは、保存ダイアログを表示して結果をファイルに書き出します。
※ 11_log_diagnostic_report.js は比較的大きなサンプルです。
   巨大ファイルでは解析行数を絞って使うと安心です。


■ 収録スクリプト一覧
--------------------

[01_export_error_lines.js]
ERROR行をCSV出力
ファイル全体から ERROR を含む行を抽出し、CSV形式で保存します。
ログのエラー行だけをすばやく抜き出したいときに便利です。

[02_export_warn_and_error.js]
WARN/ERROR行を書き出す
WARN と ERROR をまとめて抽出し、TSV形式で保存します。
警告とエラーをまとめて確認したいときのサンプルです。

[03_highlight_log_levels.js]
ログレベルを色分け
DEBUG / INFO / WARN / ERROR をそれぞれ色分けして表示します。
ログの見やすさを上げる、ハイライト機能の基本例です。

[04_jump_to_last_line.js]
末尾へ移動
ファイルの末尾へ移動し、最終行番号を表示します。
ログファイルの末尾確認や tail 的な使い方の基本例です。

[05_export_current_search_results.js]
現在の検索語でgrepしてCSV出力
検索ボックスに入力されているキーワードを使って grep を実行し、その結果を CSV で保存します。
検索と出力を組み合わせたサンプルです。

[06_file_info_dialog.js]
ファイル情報を表示
現在開いているファイルの名前、パス、文字コード、改行コード、行数をダイアログ表示します。
getFileName() や getEncoding() などの API 使用例です。

[07_select_current_line.js]
現在行を選択
キャレットがある行全体を選択します。
カーソル位置取得と行選択の基本的なサンプルです。

[08_pick_keyword_and_highlight.js]
キーワードを入力してハイライト
入力ダイアログで指定したキーワードをハイライト表示します。
簡単な対話入力とハイライト追加の例です。

[09_quick_tail_step.js]
末尾付近へ移動
最終行から少し上の位置へ移動し、最近のログを見やすくします。
更新中のログや長いログをざっと確認したいときに向いています。

[10_reload_file.js]
ファイル再読み込み
現在開いているファイルを再読み込みします。
更新されたログや外部で変更されたファイルを反映したいときに使えます。

[11_log_diagnostic_report.js]
ログ総合診断レポート
このサンプル集の中では少し高度なスクリプトです。
現在開いているログやテキストを解析し、次のような処理をまとめて行います。

・ ERROR / WARN / INFO / DEBUG などの出現数集計
・ Exception / Timeout / Failed 系の検出
・ 追加キーワードの入力による重点チェック
・ 重要行の自動ハイライト
・ 診断レポートのテキスト出力
・ 重要行の CSV 出力
・ 最初の重要行へのジャンプ

「Phantis のスクリプト機能でここまでできる」という実例として収録しています。


■ 補足
------
Phantis のスクリプトは JavaScript (Jint) ベースで動作します。
ただし、Webブラウザー用の JavaScript とは異なり、
window / document / ネットワーク通信 / 外部プロセス起動 などは使用できません。

その代わり、phantis オブジェクトを通して、
ファイル閲覧・検索・選択・ハイライト・出力などを操作できます。


■ 主な用途
----------
・ ログから重要行だけを抽出したい
・ grep 結果を CSV / TSV に保存したい
・ よく使う操作をワンクリック化したい
・ ハイライトや移動を自動化したい
・ スクリプト API の使い方を学びたい


ぜひ中身を改造しながら、自分用のスクリプト作成に活用してください。