web-dev-qa-db-ja.com

有効なログ重大度レベルを設定する

Drupal 8サイト、ページ/admin/config/development/logging、警告、エラー、その他のメッセージを表示するかどうかを指定できます。しかし、それらを表示したいかどうかは別として、存在します。

この他のページでは、admin/reports/dblog、データベースで使用可能なすべてのログを表示できます。

しかし、私のサイトに多くの訪問者がいる場合、デバッグ、情報、通知のログが常にデータベースに挿入されます。これにより、データベースに高い負荷がかかり、重要なログ(エラーと警告)が "非表示"になります。

Drupal "重大度レベルがWARNING未満のログをデータベースに挿入しないでください"とどうすればよいですか?すべてのロギングフレームワークで見つかったlevel値に相当します。

3
Eria

残念ながらそのような設定はありません。 7.x用のモジュールはありますが、8.xのポートはまだありません: https://www.drupal.org/project/watchdog_filtering

フィルタリングをサポートする別のウォッチドッグバックエンドを使用するか、syslogまたは多くのログエントリの処理に優れたその他のシステムにログを記録することができます。

そして、これらの通知/警告がPHP通知/警告によって引き起こされている場合は、修正する必要があります。

3
Berdir

そのためのモジュールがいくつかあります:

  1. DBLog Filter

DBLOG FILTERモジュールを使用すると、ログタイプとログレベルに基づいてフィルタリングされたdbログメッセージのみを保存できます。

enter image description here

  1. データベースロギング条件(ウォッチドッグ条件)

このモジュールは、Coreのdblogモジュールを有効にして、ログに記録するログチャネルと、パフォーマンスを維持するために削除できるログチャネルを定義できるようにすることで、まさにこのユースケースに対応します。

2
milkovsky

カスタムモジュールでは、エラーレベルに応じてログを保存できます。

$error_level = \Drupal::config('system.logging')->get('error_level');
if ($error_level == 'verbose') {
  \Drupal::logger('my_custom_module')->debug($message);
}
0