Hi,
Can any one provide complete steps to add logging in yii3 using di and Psr\Log\LoggerInterface
Thanks,
Hi,
Can any one provide complete steps to add logging in yii3 using di and Psr\Log\LoggerInterface
Thanks,
1: Install Logger (Monolog)
Yii3 uses PSR-3, so we install Monolog:
composer require monolog/monolog
2: Configure Logger in DI Container
Open your DI config (usually):
config/common/di.php
Add this:
use Psr\Log\LoggerInterface;
use Monolog\Logger;
use Monolog\Handler\StreamHandler;
return [
LoggerInterface::class => function () {
$logger = new Logger('app');
// logs will be saved in runtime/logs/app.log
$logger->pushHandler(
new StreamHandler(__DIR__ . '/../../runtime/logs/app.log', Logger::DEBUG)
);
return $logger;
},
];
3: Use Logger in Controller / Service
Now you can inject logger anywhere using DI:
use Psr\Log\LoggerInterface;
class SiteController
{
private $logger;
public function __construct(LoggerInterface $logger)
{
$this->logger = $logger;
}
public function actionIndex()
{
$this->logger->info('This is info log');
$this->logger->error('Something went wrong');
echo "Check log file!";
}
}
4: Log File Location
After running, check:
runtime/logs/app.log
You’ll see logs like:
[2026-04-09] app.INFO: This is info log
[2026-04-09] app.ERROR: Something went wrong
5: Different Log Types (Easy)
$this->logger->debug(‘Debug message’);
$this->logger->info(‘Info message’);
$this->logger->warning(‘Warning message’);
$this->logger->error(‘Error message’);
$this->logger->critical(‘Critical issue’);