エラー処理とオプションのリモートエラーログの最近の更新

2024年9月23日に WooCommerce developer blog に掲載された Recent updates to error handling and optional remote error logging の翻訳記事です。

WooCommerce 9.4のリリースに伴い、エラーハンドリングの改善と、オプションでのリモートエラーロギングシステムが導入されました。これらの更新は、WooCommerceの安定性を高め、開発者やストアオーナーが問題をより迅速に解決できるよう設計されています。

対象ユーザー

これらの改善は、使用状況追跡を有効にしているストアにのみ適用されます。収集するデータやプライバシーに関する詳細は、WooCommerceの使用状況追跡をご覧ください。ストアは、WooCommerce > 設定 > 高度な設定 > WooCommerce.comで「使用状況追跡を有効にする」のチェックボックスを選択または解除することで、データ共有のオプトインまたはオプトアウトが可能です。

WooCommerce 9.4で導入されるオプションのリモートエラーロギング

WooCommerce 9.4では、使用状況追跡にオプトインしているユーザー向けに、オプションのリモートエラーロギングシステムが導入されます。

  • リモートエラーロギングのEpic: #49276
  • サーバーサイドのリモートエラーロギングの実装: #49599
  • JSリモートロギングパッケージの追加: #49702

利点

このリモートロギング機能には以下の利点があります:

  • 迅速な修正: 詳細なエラーデータにより、問題の解決が迅速になります。
  • 安定性の向上: エラーの早期検出により、WooCommerce の体験がより安定します。
  • 洞察の向上: 集約されたエラーデータは、開発の優先順位を決定する際に役立ち、ユーザーにとって重要な領域に焦点を当てることができます。

データのプライバシーとセキュリティ

ユーザープライバシーを重視し、以下の対策を講じています:

  1. オプトインのみ: リモートロギングは、使用状況追跡に明示的にオプトインしたユーザーにのみ有効です。
  2. データのサニタイズ: エラートレース内のファイルパスやURL文字列は、機密情報を除去するようサニタイズされます。
  3. 高度なデータ保護: 以下の機密情報は自動的に編集されます:
    • メールアドレス
    • 電話番号
    • クレジットカード番号
    • IPアドレス
  4. データ収集の制限: エラーの診断と解決に必要な情報のみを収集します。URLのクエリパラメータも、機密情報を収集しないようプレースホルダーに置き換えられます。


収集するデータやプライバシーに関する詳細は、WooCommerceの使用状況追跡をご覧ください。

リモートロギングシステムは、サーバーサイド(PHP)またはクライアントサイド(JavaScript)でエラーが発生したかに応じて、異なる情報セットをキャプチャします。


リビジョン履歴

WooCommerce 9.5では、以下の重要なプライバシー強化が行われます:

  • WooCommerceによって特定されたエラーのみをログに記録するよう変更(以前はトレース内にWooCommerceファイルが含まれるすべてのエラーを記録していました)
  • メールアドレス、電話番号、クレジットカード番号、IPアドレスなどの機密ユーザーデータの自動編集を追加

どのような情報をログに記録しているか?

共通フィールド

すべてのログには以下が含まれます:

  • host: サイトのホスト名
  • request_uri: リクエストのURL
  • message: エラーメッセージ
  • trace: エラースタックトレース
  • wc_version: WooCommerceのバージョン
  • wp_version: WordPressのバージョン
  • tags: エラーの種類を識別するタグ(例: PHP、JS)

PHP特有のフィールド

サーバーサイドのログには追加で以下が含まれます:

  • php_version: サーバーで動作しているPHPのバージョン
  • store_id: WooCommerceストアの一意の識別子
  • JavaScript特有のフィールド

クライアントサイドのログには追加で以下が含まれます:

  • browser_version: ユーザーのブラウザバージョン
  • browser_name: ユーザーのブラウザ名

WooCommerce をインストールすると、リモートログ機能はデフォルトで無効になります。使用状況の追跡を有効にした場合にのみ有効になります。

使用状況の追跡を有効にしていて、リモートエラーログを無効にしたい場合は、woocommerce_feature_remote_logging_enabled オプションを no に設定することで無効にできます。たとえば、WP CLI 経由で wp option update woocommerce_feature_remote_logging_enabled no を実行して、この機能を無効にすることができます。これは他の追跡機能には影響しません。

WC Admin のエラー処理の改善

WooCommerce 9.1 では、WC Admin ページのエラー処理を強化し、安定性と回復力を高めました。

WC Admin コンポーネントツリーの最上部にグローバルエラー境界を追加しました。これにより、未処理のエラーがキャッチされ、WC Admin アプリ全体がクラッシュするのを防ぎます。

  • React 管理でエラーを処理するためのグローバル ErrorBoundary コンポーネントを追加 #48250
  • アクティビティ パネルをエラー境界でラップ #48415

利点

  • 処理されないエラーによるアプリ全体のクラッシュを防止
  • ユーザーフレンドリなエラーメッセージを表示
  • ページを再読み込みするか、コミュニティからサポートを求めるオプションをユーザーに提供

また、@woocommerce/components パッケージに実験的な汎用エラー境界コンポーネントも導入しました。このコンポーネントは、エラーを UI の特定の部分に分離し、他のコンポーネントが正常に機能し続けることを可能にします。

特定のコンポーネントにエラーを分離する

フィードバックと貢献

私たちはあなたのフィードバックと貢献を大切にしています。ご質問やご提案がある場合、または貢献したい場合は、以下にコメントを残すか、リモート エラー ログに関する GitHub ディスカッションに参加してください。あなたのご意見をお待ちしています!

開発者とユーザーの両方のために WooCommerce を強化し続けるので、今後のアップデートにご期待ください!