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