Add rudimentary logger
[MAILPOET-570]
This commit is contained in:
22
lib/Logging/LogHandler.php
Normal file
22
lib/Logging/LogHandler.php
Normal file
@ -0,0 +1,22 @@
|
||||
<?php
|
||||
|
||||
namespace MailPoet\Logging;
|
||||
|
||||
use MailPoet\Dependencies\Monolog\Handler\AbstractProcessingHandler;
|
||||
use MailPoet\Models\Log;
|
||||
|
||||
class LogHandler extends AbstractProcessingHandler {
|
||||
|
||||
|
||||
protected function write(array $record) {
|
||||
$model = Log::create();
|
||||
$model->hydrate([
|
||||
'name' => $record['channel'],
|
||||
'level' => $record['level'],
|
||||
'message' => $record['formatted'],
|
||||
'created_at' => $record['datetime']->format('Y-m-d H:i:s'),
|
||||
]);
|
||||
$model->save();
|
||||
}
|
||||
|
||||
}
|
38
lib/Logging/Logger.php
Normal file
38
lib/Logging/Logger.php
Normal file
@ -0,0 +1,38 @@
|
||||
<?php
|
||||
|
||||
namespace MailPoet\Logging;
|
||||
|
||||
use MailPoet\Dependencies\Monolog\Processor\IntrospectionProcessor;
|
||||
use MailPoet\Dependencies\Monolog\Processor\MemoryUsageProcessor;
|
||||
use MailPoet\Dependencies\Monolog\Processor\WebProcessor;
|
||||
|
||||
class Logger {
|
||||
|
||||
/** @var \MailPoet\Dependencies\Monolog\Logger[] */
|
||||
private static $instance = [];
|
||||
|
||||
/**
|
||||
* @param string $name
|
||||
* @param bool $forceCreate
|
||||
*
|
||||
* @return \MailPoet\Dependencies\Monolog\Logger
|
||||
*/
|
||||
public static function getLogger($name = 'MailPoet', $forceCreate = false) {
|
||||
if(!isset(self::$instance[$name]) || $forceCreate) {
|
||||
self::$instance[$name] = new \MailPoet\Dependencies\Monolog\Logger($name);
|
||||
|
||||
if(WP_DEBUG) {
|
||||
// Adds the line/file/class/method from which the log call originated
|
||||
self::$instance[$name]->pushProcessor(new IntrospectionProcessor());
|
||||
// Adds the current request URI, request method and client IP to a log record
|
||||
self::$instance[$name]->pushProcessor(new WebProcessor());
|
||||
// Adds the current memory usage to a log record
|
||||
self::$instance[$name]->pushProcessor(new MemoryUsageProcessor());
|
||||
}
|
||||
|
||||
self::$instance[$name]->pushHandler(new LogHandler());
|
||||
}
|
||||
return self::$instance[$name];
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user