Home » Php » php – YII logging for debugging

php – YII logging for debugging

Posted by: admin July 12, 2020 Leave a comment


In many cases, Xdebug is not suitable for debugging as it involves clicks to run to a particular line of codes. I want to use something that is similar to cakePHP debug function for developers to output the value of a particular property of a class to the browser.

I am using Yii framework and this is my configuration for the yii log in the main.php:

            'levels'=>'trace, info, error, warning, vardump',
                                'enabled' => YII_DEBUG,
            'levels'=>'error, warning, trace, log, vardump',

In one of my defined controller i put this code to test:

Yii::log("CallFromUserController",'info', 'application');

However i don’t see this being printed in the firebug. I used Chris’s example:


How to&Answers:

I finally managed to find out a solution:

In my main.php I did this:

'log' => array(
    'class' => 'CLogRouter',
    'routes' => array(
            'class' => 'CFileLogRoute',
            'levels' => 'trace, info, error, warning, vardump',
        // uncomment the following to show log messages on web pages
            'class' => 'CWebLogRoute',
            'enabled' => YII_DEBUG,
            'levels' => 'error, warning, trace, notice',
            'categories' => 'application',
            'showInFireBug' => false,

In my controller I used this code:

$a = new array(1,2,3);

The Application Log is shown below in every page.


In Yii2


An example of customized log class is given below.


namespace app\helpers;

use Yii;
use yii\helpers\VarDumper;

class Log {

    const LOG_CATEGORY_NAME = 'myLog';

    public static function e($msg, $data) {

        if (isset($data)) {
            $msg .= " " . VarDumper::dumpAsString($data);
        Yii::error($msg, self::LOG_CATEGORY_NAME);


 Log.e("Copying the Estimate data failed. Model::getError(): ", 


You should add following lines to your protected/main.php file for debug:true mode. Trust work like a charm !

return array(
    'preload' => array(
    'components' => array(
        'debug' => array(
            'class' => 'ext.yii2-debug.Yii2Debug',

            'db' => array(
                'enableProfiling' => true,
                'enableParamLogging' => true,