カスタムログの概要
ログは、システムプロセスの可視性を提供します。例えば、エラーがいつ発生したか、エラーの原因を把握するのに役立つ情報をデバッグします。
このトピックでは、ファイルベースのロギングに焦点を当てていますが、Commerceでは、データベースにログを保存する柔軟性も提供しています。
Adobeでは、次の理由から、一元化されたアプリケーションログを使用することをお勧めします。
PSR-3準拠
PSR-3標準は、ライブラリをログ記録するための共通のPHP インターフェイスを定義します。 PSR-3の主な目的は、ライブラリがPsr\Log\LoggerInterface オブジェクトを受け取り、シンプルかつユニバーサルな方法でログを書き込めるようにすることです。
これにより、実装を容易に置き換えることができるため、アプリケーションのコードが破損する恐れがあります。 また、ログ実装が将来のバージョンのシステムで変更された場合でも、カスタムコンポーネントが機能することも保証されます。
モノログ
Commerce 2はPSR-3規格に準拠しています。 デフォルトでは、CommerceはMonologを使用します。 モノログは、Commerce アプリケーション di.xmlでPsr\Log\LoggerInterfaceの環境設定として実装されました。
Monologは、高度なロギング戦略を構築できる幅広いハンドラーを備えた人気のあるPHP ロギングソリューションです。 以下は、Monologの仕組みの概要です。
モノログ loggerは、独自の ハンドラー のセットを持つチャネルです。 Monologには、以下のような多くのハンドラーがあります。
- ファイルとsyslogにログイン
- アラートと電子メールの送信
- 特定のサーバーとネットワーク化されたログの記録
- 開発中のログイン(FireBugやChrome Loggerとの統合など)
- データベースにログイン
各ハンドラーは、入力メッセージを処理して伝播を停止するか、チェーン内の次のハンドラーに制御を渡すことができます。
ログメッセージは、さまざまな方法で処理できます。 例えば、すべてのデバッグ情報をディスク上のファイルに保存し、ログレベルが高いメッセージをデータベースに格納し、最終的にログレベルが「クリティカル」なメッセージをメールで送信できます。
他のチャネルには、異なるハンドラーとロジックのセットを持つことができます。