BlueOnyx 5210R/5211R/5212R デバッグ

BlueOnyx 5210R、5211R、5212R では、GUI 内の問題やエラーを追跡するための仕組みが改善されています。このガイドでは、その仕組みの使い方を説明します。

CI4 Env を使った CodeIgniter 4 のデバッグ:

GUI のデバッグは、「Maintenance」(メンテナンス)→「Server Desktop」(サーバーデスクトップ)にある「Enable GUI Debug」(GUI デバッグを有効にする)スイッチで有効にできます。

GUI デバッグを有効にする設定画面

この操作により、ファイル /usr/sausalito/ui/chorizo/ci4/.env の次のセクションの設定が変更されます。

通常の状態(デバッグ無効):

#--------------------------------------------------------------------
# ENVIRONMENT
#--------------------------------------------------------------------
#CI_ENVIRONMENT = development
CI_ENVIRONMENT = production
#--------------------------------------------------------------------

デバッグ有効:

#--------------------------------------------------------------------
# ENVIRONMENT
#--------------------------------------------------------------------
CI_ENVIRONMENT = development
#CI_ENVIRONMENT = production
#--------------------------------------------------------------------

これで BlueOnyx GUI は「production」(本番)モードから「development」(開発)モードに切り替わります。GUI を使うと、まず右下に折りたたみ式の CodeIgniter アイコンが表示されます。クリックするとツールバーが展開され、GUI の実行時情報を確認できます。以下はその例です。

右側の CodeIgniter デバッグツールバーアイコン。クリックすると展開します:

折りたたまれた CodeIgniter デバッグツールバー

CodeIgniter デバッグツールバーを展開した状態:

展開された CodeIgniter デバッグツールバー

CodeIgniter デバッグツールバーを展開し、詳細情報を表示した状態:

CodeIgniter デバッグツールバーの詳細情報

GUI ページでエラーが発生した場合の CodeIgniter エラー表示:

CodeIgniter の詳細なエラー表示

このように、エラーが発生すると、対象モジュール、コード行、エラーメッセージ、該当コード、変数の状態などを含む非常に詳細な GUI 画面が表示されます。デバッグに非常に役立ちます。

ただし、開発モードを有効にすると、3〜4 個ほど正しく表示されない GUI ページがあります。たとえば統合 Webalizer 統計画面では、デバッグツールバーのコードが GUI ページに自動挿入され、表示が崩れることがあります。大半の画面は開発モードでも問題なく動作します。

本番運用では「development」モードを使用しないでください。利用者に見せたくない環境変数などが公開される可能性があります。

/var/log/gui-debug.log と /etc/DEBUG

新しいログファイル /var/log/gui-debug.log には GUI へのアクセスが記録されます。どのログインユーザーがどの画面にアクセスしたかを確認できます。あれば便利ですが、必須ではなく、それだけではデバッグにはあまり役立ちません。

次に「touch /etc/DEBUG」を実行してください(空のファイル /etc/DEBUG を作成します)。その上で「tail -f /var/log/gui-debug.log」を実行しながら GUI を操作します。

これにより、各 GUI ページが実行した個々の CCEd トランザクションと、そのすべてのデータまで確認できる、非常に詳細な情報が得られます。

作業が終わったら、必ず「rm /etc/DEBUG」を実行してください。そうしないとログファイルが急速に肥大化し、多くのディスク容量を消費します。なお、このログファイルは毎日の logrotate の対象です。