ログとデバッグ

基本的な考え方

あいまいな問題で頭を悩ませる前に、かんたんな問題——古いキャッシュファイルによる問題——を先に排除しておきましょう。サイトの開発中には異なるキャッシュレイヤーが影響を及ぼす可能性があります。

サイトキャッシュを無効にする

concrete5のどんな問題を解決するさいにも、サイトキャッシュを無効にする、あるいはキャッシュをクリアすることを強くおすすめします。このことで、お使いのサイトで古いリソースを読み込んでいる可能性を排除できます。サイトの構築中はキャッシュを無効にしておくことをおすすめします。設定はこちらで行なえます

管理画面 > システムと設定 > 最適化 > キャッシュとスピード設定

ブラウザキャッシュをクリアする

ブラウザのキャッシュファイルとCookieをクリアすることにも留意する必要があるでしょう。理由の分からないサイトの挙動によって困っている場合は、検討すべき手段です。

デバッグ設定

concrete5サイトでPHPエラーを表示するか隠すかを設定することができます。真っ白なページが表示されたり、PHPエラーと思われる現象が起きているのにHTMLソースに何も表示されていない場合、エラーメッセージが隠されている可能性が高いです。エラーを表示するには、次のページにアクセスし

管理画面 > システムと設定 > サーバー設定一覧 > デバッグ設定

「エラーをページに表示する」を選択してください。多くの場合、単にエラーメッセージを読み解くことで問題に対する十分な情報が得られます。

エラーによって管理画面にアクセスできない場合は、データベースに次のクエリを投げることでデバッグレベルを変更できます。

UPDATE Config SET cfValue = 1 WHERE cfKey = 'SITE_DEBUG_LEVEL';

エラーのログ

サイトで発生したエラーは管理画面内のログに残すことができます。ログを有効にするには、次のページにアクセスし

管理画面 > システムと設定 > サーバー設定一覧 > ログ設定

「アプリケーション例外ログ」を有効にしてください。

ログを確認するには

管理画面 > レポート > ログ

メールメッセージのログ

サイトによって生成されたEメールも管理画面のログページに保存されます。「Send Emails」タイプで絞り込むことで全てのメッセージを見ることができます。これはサイト内のフォームから送信されたメールを見たり、パスワードリセットのメールを確認したりするのにつかえます。

エラーログと同様に、メールのログは次のページから有効にできます。

管理画面 > システムと設定 > サーバー設定一覧 > ログ設定

Logクラスを使ったカスタムログ

独自のログエントリーをaddEntryメソッドを呼び出すことでかんたんに追加することができます。

Log::addEntry('I wish to log this string.');

最初の引数がログに記録されるメッセージです。この方法では「debug」タイプのログとして保存されます。独自のタイプのログとして保存したい場合は、単純に第2引数で指定してください。

Log::addEntry('This is a logged message!','my_type');

この方法をかんたんにテストする方法は、このコードをtoolsディレクトリに置いて実行する方法です。ファイルにブラウザからアクセスすると、新しいログが次のように追加されていることを確認できるでしょう。

logging_result.png

複数行のログ

これは別のサンプルです。この方法で、同じログエントリー内に複数行を追加することができます。

$l = new Log('special_application', true);
$l->write('Entry 1');
$l->write('Entry 2');
$l->write('Entry 3');
$l->close();

logging_session.png

Further Reading

原文:Logging and Debugging