ホームページ  >  記事  >  バックエンド開発  >  CakePHP のロギング

CakePHP のロギング

王林
王林オリジナル
2024-09-10 17:26:17485ブラウズ

CakePHP へのログインは非常に簡単な作業です。使用する関数は 1 つだけです。 cronjob などのバックグラウンド プロセスのエラー、例外、ユーザー アクティビティ、ユーザーが実行したアクションをログに記録できます。 CakePHP でのデータのログ記録は簡単です。 log() 関数は、ほぼすべての CakePHP クラスの共通の祖先である LogTrait によって提供されます。

ロギング構成

ファイル config/app.php. でログを構成できます。ファイルにはログ セクションがあり、次のスクリーンショットに示すようにログ オプションを構成できます。

CakePHP のロギング

デフォルトでは、errordebug の 2 つのログ レベルがすでに設定されています。それぞれが異なるレベルのメッセージを処理します。

CakePHP は、以下に示すようにさまざまなログレベルをサポートします -

  • 緊急 − システムが使用できません

  • アラート − 直ちに措置を講じる必要があります

  • クリティカル − クリティカル状態

  • エラー − エラー条件

  • 警告 − 警告状態

  • 注意 − 正常だが重大な状態

  • 情報 − 情報メッセージ

  • デバッグ − デバッグレベルのメッセージ

ログファイルへの書き込み

ログ ファイルに書き込む方法は 2 つあります。

1 つ目は、静的な write() メソッドを使用することです。以下は、静的 write() メソッドの構文です。

構文 write( integer|string $level,mixed $message,string|array $context [] ) パラメータ
Syntax write( integer|string $level, mixed $message, string|array $context [] )
Parameters

The severity level of the message being written. The value must be an integer or string matching a known level.

Message content to log.

Additional data to be used for logging the message. The special scope key can be passed to be used for further filtering of the log engines to be used. If a string or a numerically index array is passed, it will be treated as the scope key. See CakeLogLog::config() for more information on logging scopes.

Returns

boolean

Description

Writes the given message and type to all of the configured log adapters. Configured adapters are passed both the $level and $message variables. $level is one of the following strings/values.

書き込まれているメッセージの重大度レベル。値は、既知のレベルに一致する整数または文字列である必要があります。

ログに記録するメッセージの内容。 メッセージのログ記録に使用される追加データ。特別なスコープ キーを渡して、使用するログ エンジンをさらにフィルタリングするために使用できます。文字列または数値インデックス配列が渡された場合、それはスコープ キーとして扱われます。ロギングスコープの詳細については、CakeLogLog::config() を参照してください。

返品 ブール値 説明

指定されたメッセージとタイプを、構成されているすべてのログ アダプターに書き込みます。構成されたアダプターには、$level 変数と $message 変数の両方が渡されます。 $level は、次の文字列/値のいずれかです。

2 つ目は、LogTrait

を使用する任意の関数で利用可能な

log() ショートカット 関数を使用することです。 log() を呼び出すと、内部で Log::write() −

<?php use Cake\Http\Middleware\CsrfProtectionMiddleware;
use Cake\Routing\Route\DashedRoute;
use Cake\Routing\RouteBuilder;
$routes->setRouteClass(DashedRoute::class);
$routes->scope('/', function (RouteBuilder $builder) {
   $builder->registerMiddleware('csrf', new CsrfProtectionMiddleware([
      'httpOnly' => true,
   ]));
   $builder->applyMiddleware('csrf');
   //$builder->connect('/pages',
      ['controller'=>'Pages','action'=>'display', 'home']);
   $builder->connect('logex',['controller'=>'Logexs','action'=>'index']);
   $builder->fallbacks();
});

次のプログラムに示すように、config/routes.php ファイルを変更します。

config/routes.php

<?php namespace App\Controller;
   use App\Controller\AppController;
   use Cake\Log\Log;
   class LogexsController extends AppController{
      public function index(){
         /*The first way to write to log file.*/
         Log::write('debug',"Something didn't work.");
         /*The second way to write to log file.*/
         $this->log("Something didn't work.",'debug');
      }
   }
?>

src/Controller/LogexsController.php に LogexsController.php ファイルを作成します。 コントローラー ファイルに次のコードをコピーします。 src/Controller/LogexsController.php

src/Template
Something is written in log file. Check log file logs\debug.log
にディレクトリ

Logexs

を作成し、そのディレクトリの下に、index.php という名前の

View

ファイルを作成します。そのファイルに次のコードをコピーします。

src/Template/Logexs/index.php

CakePHP のロギング

次の URL にアクセスして、上記の例を実行します。CakePHP のロギング http://localhost/cakephp4/logex 出力 実行すると、次の出力が表示されます。 ログは log/debug.log ファイルに追加されます −

以上がCakePHP のロギングの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。