MaplePHP PSR-3 Logger library – your reliable companion for efficient logging in PHP applications. This library adheres to the PSR-3 standard, providing a seamless and standardized approach to logging


  1. emergency: System is unusable

  2. alert: Action must be taken immediately

  3. critical: Critical conditions

  4. error: Runtime errors that do not require immediate action but usually logged and monitored.

  5. warning: Exceptional occurrences that are not errors.

  6. notice: Normal but significant events.

  7. info: Interesting events (User logs in, SQL logs.)

  8. debug: Detailed debug information.

  9. log: Logs with an arbitrary level.

Logger in provider

You can access the logger with the help of the Service Provider, e.g it is utilizing the StreamHandler.

$this->provider->logger()->warning("The user {firstname} has been added.", ["firstname" => "John", "lastname" => "Doe"]);

Stream/file handler

Or you could access it directly through the Logger library and build your own logger service.

Add namespaces

use MaplePHP\Log\Logger;
use MaplePHP\Log\Handlers\StreamHandler;

Create simple stream logger

$log = new Logger(new StreamHandler("/path/to/logger.log"));
$log->warning("The user {firstname} has been added.", ["firstname" => "John", "lastname" => "Doe"]);

Rotatable log files

Create simple stream rotatables loggers. Will create a new log file if size is more than MAX_SIZE (5000 KB) and remove log files if total file count is more than MAX_COUNT 10.

$log = new Logger(new StreamHandler("/path/to/logger.log", StreamHandler::MAX_SIZE, StreamHandler::MAX_COUNT));
$log->warning("The user {firstname} has been added.", ["firstname" => "John", "lastname" => "Doe"]);

Database handler

Add namespaces

use MaplePHP\Log\Logger;
use MaplePHP\Log\Handlers\DBHandler;

1. Connect to the database.

Install the database with the MakePHP cli.

php cli config install --type=mysql

2. Create database table

Install the database table with the MakePHP cli.

php cli migrate create --table=logger

3. Write to database log

$log = new Logger(new DBHandler());
$log->warning("The user {firstname} has been added.", ["user_id" => 4, "firstname" => "Daniel"]);

PHP error log handler (error_log())

You can (not required) specify a log file location in ErrorLogHandler. If argument is empty, then server default location.

Add namespaces

use MaplePHP\Log\Logger;
use MaplePHP\Log\Handlers\ErrorLogHandler;
$log = new Logger(new ErrorLogHandler("/path/to/logger.log"));
$log->warning("The user {firstname} has been added.", ["firstname" => "John", "lastname" => "Doe", "data" => ["city" => "Stockholm", "coor" => "122,1212"]]);

Last updated