No, You cannot log the stack trace using the built-in formatters. See my question here.
If you take a look at LineFormatter.php
you see that the normalizeException
method is responsible for grabbing the exception data. So, I had to create a new formatter that extended LineFormatter
. Here's the code:
<?php
namespace Monolog\Formatter;
use Exception;
class ExceptionLineFormatter extends LineFormatter
{
protected function normalizeException(Exception $e)
{
return 'Message: ' . $e->getMessage() .
'Stack Trace: '. $e->getTraceAsString();
}
}
And I initialized my logger like so:
$logFile = 'MyLogFile.txt';
$handler = new StreamHandler($logFile);
$handler->setFormatter(new ExceptionLineFormatter);
$log = new Logger('MyLogger');
$handler = self::getStreamHander();
$log->pushHandler($handler);
This will will print out your stack trace.