Cakephp-logging

提供:Dev Guides
移動先:案内検索

CakePHP-ロギング

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

ロギング構成

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

ロギング設定

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

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

  • 緊急-システムは使用できません
  • アラート-すぐに対処する必要があります
  • クリティカル-クリティカルな状態
  • エラー-エラー状態
  • 警告-警告条件
  • 注意-正常だが重要な状態
  • 情報-情報メッセージ
  • デバッグ-デバッグレベルのメッセージ

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

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

最初の方法は、静的* write()メソッドを使用することです。 以下は、静的 write()*メソッドの構文です。

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.

ログに記録するメッセージの内容。

メッセージのロギングに使用される追加データ。 特別な `+ scope `キーを渡して、使用するログエンジンをさらにフィルタリングするために使用できます。 文字列または数値インデックス配列が渡された場合、それは ` scope +`キーとして扱われます。 ロギングスコープの詳細については、Cake \ Log \ Log
config()を参照してください。
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.
2つ目は、* LogTrait Calling log()を使用するすべてで使用可能な log()ショートカット*関数を使用することです。** Log
write()**-

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

*config/routes.php*
<?php
   use Cake\Core\Plugin;
   use Cake\Routing\RouteBuilder;
   use Cake\Routing\Router;

   Router::defaultRouteClass('DashedRoute');
   Router::scope('/', function (RouteBuilder $routes) {
      $routes->connect('logex',['controller'=>'Logexs','action'=>'index']);
      $routes->fallbacks('DashedRoute');
   });
   Plugin::routes();
*src/Controller/LogexController.php* に *LogexController.php* ファイルを作成します。 次のコードをコントローラーファイルにコピーします。
*src/Controller/LogexController.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/Template Logexsディレクトリを作成し、そのディレクトリの下に index.ctp という View ファイルを作成します。 そのファイルに次のコードをコピーします。

*src/Template/Logexs/index.ctp*
Something is written in log file. Check log file logs\debug.log

次のURLにアクセスして、上記の例を実行します。

*http://localhost:85/CakePHP/logex*

出力

実行すると、次の出力が表示されます。

Logexs