[PaaS のみ]{class="badge informative" title="Adobe Commerce on Cloud プロジェクト(Adobeが管理する PaaS インフラストラクチャ)およびオンプレミスプロジェクトにのみ適用されます。"}

カスタムログの概要

ログは、システムプロセスの可視性を提供します。例えば、エラーがいつ発生したか、エラーの原因を把握するのに役立つ情報をデバッグします。

このトピックでは、ファイルベースのロギングに焦点を当てていますが、Commerceでは、データベースにログを保存する柔軟性も提供しています。

Adobeでは、次の理由から、一元化されたアプリケーションログを使用することをお勧めします。

  • アプリケーションサーバー以外のサーバーにログを保存できるようにし、ディスク I/O操作を減らすことで、アプリケーションサーバーのサポートを簡素化します。

  • 本番サーバーに影響を与えることなく、LogstashLogplexfluentdなどの特殊なツールを使用することで、ログデータの処理がより効果的になります。

    note info
    INFO
    Adobeは、特定のロギングソリューションを推奨または推奨するものではありません。

PSR-3準拠

PSR-3標準は、ライブラリをログ記録するための共通のPHP インターフェイスを定義します。 PSR-3の主な目的は、ライブラリがPsr\Log\LoggerInterface オブジェクトを受け取り、シンプルかつユニバーサルな方法でログを書き込めるようにすることです。

これにより、実装を容易に置き換えることができるため、アプリケーションのコードが破損する恐れがあります。 また、ログ実装が将来のバージョンのシステムで変更された場合でも、カスタムコンポーネントが機能することも保証されます。

モノログ

Commerce 2はPSR-3規格に準拠しています。 デフォルトでは、CommerceはMonologを使用します。 モノログは、Commerce アプリケーション di.xmlPsr\Log\LoggerInterfaceの環境設定として実装されました。

Monologは、高度なロギング戦略を構築できる幅広いハンドラーを備えた人気のあるPHP ロギングソリューションです。 以下は、Monologの仕組みの概要です。

モノログ logger​は、独自の​ ハンドラー ​のセットを持つチャネルです。 Monologには、以下のような多くのハンドラーがあります。

  • ファイルとsyslogにログイン
  • アラートと電子メールの送信
  • 特定のサーバーとネットワーク化されたログの記録
  • 開発中のログイン(FireBugやChrome Loggerとの統合など)
  • データベースにログイン

各ハンドラーは、入力メッセージを処理して伝播を停止するか、チェーン内の次のハンドラーに制御を渡すことができます。

ログメッセージは、さまざまな方法で処理できます。 例えば、すべてのデバッグ情報をディスク上のファイルに保存し、ログレベルが高いメッセージをデータベースに格納し、最終的にログレベルが「クリティカル」なメッセージをメールで送信できます。

他のチャネルには、異なるハンドラーとロジックのセットを持つことができます。

recommendation-more-help
386822bd-e32c-40a8-81c2-ed90ad1e198c