D7では、ウォッチドッグ機能を使用してログを記録するために使用されます。 D8では、それがなくなっているのがわかります。 logging API と呼ばれるものを使用する必要があります。
私がやろうとしていること:
mysite.com/logmessage
D8のドキュメントに記載されているサービスをどこに登録すればよいですか? sites/default
フォルダーのservices.ymlファイルにありますか?
コントローラ/モジュールファイルに上記のクラスをロードして、ロギング用の関数を呼び出すことはできますか?または、関数を使用する前に、モジュールで最初にクラスを明示的に拡張する必要がありますか?
コントローラ/モジュールファイルに上記のクラスをロードして、ロギング用の関数を呼び出すことはできますか?
はい;まあ、「このクラスをロードする」とは、実際にはこのコンテキストで「サービスクラスのインスタンスを取得または注入する」という意味ですが、そうです。
関数を使用する前に、モジュールで最初にクラスを明示的に拡張する必要がありますか?
既存のサービスが提供していない機能が必要な場合を除きます。
非DIコードの使用:
\Drupal::logger('my_module')->info('Info');
DIコードで、サービスを挿入して使用します。
$this->logger->info('Info');
ロギングにはさまざまなタイプがあり、すべて ドキュメントに従って と同じ方法で呼び出されます。
\Drupal::logger('my_module')->alert($message);
\Drupal::logger('my_module')->info($message);
\Drupal::logger('my_module')->debug($message);
モジュール内の任意の場所でこのコードを呼び出すだけです。logmessage
をパスとして登録する場合は、my_module.routing.yml
などを作成する必要があります。