Cakephp-logging
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. ログに記録するメッセージの内容。
|
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*
出力
実行すると、次の出力が表示されます。