Enhanced DB Target for Yii2 Log Component ¶
I wrote this extension for resolving the following problems:
- The logs are chaotic, I cannot distinguish which logs are came from the same requests. It is hard to debug in concurrent scenarios.
- The yii\log\DbTargetdoes not provide rotate feature.
Installation ¶
composer require --prefer-dist razonyang/yii-log
Usage ¶
The usage is similar to yii\log\DbTarget.
Configuration ¶
[
    'components' => [
        'log' => [
            'targets' => [
                [
                    'class' => \razonyang\yii\log\DbTarget::class,
                    'levels' => ['error', 'warning'],
                    'logTable' => '{{%log}}',
                    // rotate settings
                    'rotateInterval' => 100000,
                    // rotate mutex settings
                    'rotateMutex' => 'mutex',
                    'rotateMutexKey' => 'log_rotate',
                    'rotateMutexAcquireTimeout' => 0,
                ],
            ],
        ],
        // mutex is required by log rotate.
        'mutex' => [
            'class' => \yii\mutex\FileMutex::class,
        ],
    ],
    // migrate and rotate settings for console application.
    'controllerMap' => [
        'migrate' => [
            'class' => \yii\console\controllers\MigrateController::class,
            'migrationPath' => [
                '@vendor/razonyang/yii-log/src/migrations',
            ],
        ],
        'log' => [
            'class' => \razonyang\yii\log\LogController::class,
        ]
    ],
]
Migrate ¶
./yii migrate
Rotate ¶
./yii log/rotate
If you have any questions, please ask in the forum instead.
Signup or Login in order to comment.