Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- namespace App\Http\Controllers;
- use Monolog\Logger;
- use Monolog\Handler\RotatingFileHandler;
- use Monolog\Processor\WebProcessor;
- use Monolog\Formatter\LineFormatter;
- use Auth;
- class LoggerController
- {
- private $channels = [];
- /**
- * получить или создать логгер
- * @param $channelName
- * @return mixed *
- */
- public function getLogger($channelName)
- {
- if (!array_key_exists($channelName, $this->channels)) {
- $this->createLogger($channelName);
- }
- return $this->channels[$channelName];
- }
- /**
- * создать логгер
- * @param $channelName
- * @return Logger
- */
- private function createLogger($channelName)
- {
- $logger = new Logger($channelName);
- $parametr = 'logs\\' . $channelName . '.' . 'log';
- $handler = new RotatingFileHandler(storage_path($parametr), Logger::INFO);
- $user = Auth::user();
- $handler->setFormatter(new LineFormatter("[%datetime%] %channel%.%level_name%: " . 'User Name: ' . $user->getAttributeValue('name') . ' | User Email: ' . $user->getAttributeValue('email') . ' | ' . "%message% %extra% %context%\n"));
- $logger->pushHandler($handler);
- $logger->pushProcessor(new WebProcessor);
- $this->channels[$channelName] = $logger;
- return $logger;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement