mPDF Manual – Installation & setup

Logging

class Mpdf\Mpdf implements \Psr\Log\LoggerAwareInterface and utilizes PSR-3 standard for logging.

Different message types are separated by context, for different context types see \Mpdf\Log\Context class constants.

Currently, Psr\Log\LogLevel::DEBUG is used for informational messages such as memory and time consumption, and Psr\Log\LogLevel::WARNING and Psr\Log\LogLevel::ERROR are used for more severe cases. In most cases, after logging a warning or error leveled message, the script is ended with throwing a \Mpdf\MpdfException.

Any library implementing the interface can be used to leverage logging posibilities. monolog/monolog is a commonly used example.

Following code will output all debugging messages into a file on disk.

<?php

use Monolog\Logger;
use Monolog\Handler\StreamHandler;
use Mpdf\Mpdf;

// create a log channel
$logger = new Logger('name');
$logger->pushHandler(new StreamHandler('path/to/your.log', Logger::DEBUG));

$mpdf = new Mpdf\Mpdf();
$mpdf->setLogger($logger);

See Monolog documentation for more information on its usage.

For simple one-time logging an anonymous class can be used with PHP ≥7.0

<?php

$mpdf = new Mpdf\Mpdf();
$mpdf->setLogger(new class extends \Psr\Log\AbstractLogger {
    public function log($level, $message, array $context = [])
    {
        echo $level . ': ' . $message . "\n";
    }
});
Fork me on GitHub