Appearance
ADM-014 デバッグログ管理画面
概要
- WordPress の
debug.logをサーバーへ SSH 接続せずに確認できるようにするための管理画面。 - 管理画面内で 最新ログの閲覧 / キーワード絞り込み / ファイルダウンロード を提供する。
- 危険操作を避けるため、本画面の初期スコープは「閲覧専用(削除は行わない)」とする。
- ツールメニュー配下のサブメニューとして登録する。
ワイヤーフレーム
画面仕様
ブロック一覧
| ブロックID | ブロック名 | 表示内容 | 初期値 | ユーザー操作 | アクション |
|---|---|---|---|---|---|
B-1 | 状態表示 | ファイル存在、最終更新時刻、サイズ、総行数を表示。 | 画面表示時に取得した最新状態。 | - | - |
B-2 | フィルタ | キーワード、日付範囲、表示件数を入力するフォーム。 | キーワード空、期間未指定、100件。 | 値を入力し、適用またはリセットする。 | REQ-001 |
B-3 | 操作 | 再読込ボタン、ダウンロードボタン。 | 常に表示。 | ボタン押下でログ再取得またはファイルDLを実行。 | REQ-002/3 |
B-4 | ログ表示領域 | 1行単位のログ表示(ページング対応)。 | 最新100行。 | スクロールして内容確認、ページ移動を行う。 | REQ-001 |
B-5 | 注意事項 | 権限・機密情報・エスケープに関する注意文言。 | 常に表示。 | - | - |
処理連携仕様
アクション一覧
A-1
画面初期表示、B-2(フィルタ)適用、B-4(ページング)操作時に REQ-001: デバッグログ取得・表示 を呼び出す。
- フィルタ条件に基づいて
debug.logを読み込み、表示対象行を返却する。 - 返却する本文はプレーンテキスト扱いで HTML エスケープして描画する。
- 大容量ファイル対策として、検索モードを以下の 2 種とする。
- 高速モード(既定): 末尾 N 行のみを検索対象とする(結果は部分一致)。
- 完全検索モード: ファイル全体を検索対象とする(結果は完全一致、処理時間増)。
- モード切替条件:
- 画面初期表示時および再読込時は高速モード。
- キーワードまたは期間フィルタを指定した場合は、利用者が明示的に「完全検索」を選択したときのみ完全検索モードを使用する。
- UI 上で「高速(末尾 N 行)/ 完全(全体)」の切替を表示し、既定は高速とする。
- 日付判定ルール:
from_dateは当日 00:00:00 以上(含む)。to_dateは当日 23:59:59 以下(含む)。- 判定タイムゾーンは
Asia/Tokyo(入力日時は同タイムゾーンへ正規化して評価)。 - 実装で UTC 比較が必要な場合は、上記で正規化した日時を UTC に変換して比較する。
リクエスト
| requestParam | 本画面の値(どの部品から何を送るか) |
|---|---|
keyword | B-2 のキーワード入力値 |
from_date | B-2 の開始日入力値(任意) |
to_date | B-2 の終了日入力値(任意) |
limit | B-2 の表示件数(50/100/200 など) |
page | B-4 のページング状態 |
_wpnonce | ログ表示操作用 nonce |
search_mode | tail(高速)/ full(完全検索) |
レスポンス
| 項目 | 内容 |
|---|---|
| 成功時 | フィルタ条件に一致するログ行、最新状態情報、ページ情報を返却する。 |
| 失敗時 | 権限不足 / nonce 不正 / ログ未存在の管理者向けメッセージを返却する。 |
| 画面更新時の処理 | 画面全体再描画で B-1(状態表示)と B-4(ログ表示領域)を更新する。 |
A-2
B-3(最新を再読込)押下時に REQ-002: デバッグログ再読込 を呼び出す。
- 現在のフィルタ条件(
keyword/from_date/to_date/limit/page/search_mode)を引き継いでA-1を再実行する。
リクエスト
| requestParam | 本画面の値(どの部品から何を送るか) |
|---|---|
reload | B-3 の再読込ボタン押下フラグ(固定値) |
keyword | B-2 のキーワード入力値(現在値を引き継ぐ) |
from_date | B-2 の開始日入力値(現在値を引き継ぐ) |
to_date | B-2 の終了日入力値(現在値を引き継ぐ) |
limit | B-2 の表示件数(現在値を引き継ぐ) |
page | B-4 のページング状態(現在値を引き継ぐ) |
search_mode | tail(高速)/ full(完全検索)の現在値を引き継ぐ |
_wpnonce | 再読込操作用 nonce |
レスポンス
| 項目 | 内容 |
|---|---|
| 成功時 | 最新ログ状態とログ本文を返却する。 |
| 失敗時 | 権限不足 / nonce 不正 / ログ未存在の管理者向けメッセージを返却する。 |
| 画面更新時の処理 | 画面全体再描画で B-1(状態表示)と B-4(ログ表示領域)を最新状態へ更新。 |
A-3
B-3(debug.log をダウンロード)押下時に REQ-003: デバッグログダウンロード を呼び出す。
debug.logをtext/plainでダウンロードさせる。manage_options権限と nonce を必須とする。
リクエスト
| requestParam | 本画面の値(どの部品から何を送るか) |
|---|---|
download | B-3 のダウンロードボタン押下フラグ(固定値) |
_wpnonce | ダウンロード操作用 nonce |
レスポンス
| 項目 | 内容 |
|---|---|
| 成功時 | text/plain で debug.log ファイルを返却し、ブラウザ保存を開始する。 |
| 失敗時 | 権限不足 / nonce 不正 / ログ未存在の管理者向けメッセージを返却する。 |
| 画面更新時の処理 | ダウンロード処理のため画面本文更新は行わない。 |
外部インターフェース
管理画面 URL
| 項目 | 値 |
|---|---|
| URL | /wp-admin/tools.php?page=debug-log-viewer |
| メニュー名 | デバッグログ |
| 権限 | manage_options |
参照ファイル
| 項目 | 値 |
|---|---|
| 既定対象 | /wp-content/debug.log |
| 条件 | WP_DEBUG_LOG が有効(true またはログファイルパス文字列)で、解決先ファイルが存在すること |
| エラー時表示 | 「ログファイルが存在しません」等の管理者向けメッセージを表示 |