/** * @inheritdoc */ public function setUp() { $this->handler = new ArrayHandler(); $this->handler->setFormatter(new LineFormatter('%level_name% %message%')); $this->logger = new Logger('test'); $this->logger->pushHandler($this->handler); $this->logger->pushProcessor(new ContextReplacementProcessor()); }
protected function defaultHandlers() { $path = $path = Alias::getAlias('@runtime/logs'); FileHelper::createDirectory($path); $paths = [self::DEBUG => "{$path}/debug.log", self::INFO => "{$path}/info.log", self::NOTICE => "{$path}/error.log", self::WARNING => "{$path}/error.log", self::ERROR => "{$path}/error.log", self::CRITICAL => "{$path}/error.log", self::ALERT => "{$path}/error.log", self::EMERGENCY => "{$path}/error.log"]; $formatter = new LineFormatter("[%datetime%]\t%level_name%\t%extra.hash%\t%message%\t%extra.user_id%\t%extra.user_ip%\t%extra.user_agent%\n"); $this->logger->pushProcessor(function ($record) { $record['extra']['hash'] = substr(md5($record['message']), -6); $record['extra']['user_agent'] = strip_tags($_SERVER['HTTP_USER_AGENT']); $record['extra']['user_ip'] = filter_input(INPUT_SERVER, 'REMOTE_ADDR', FILTER_VALIDATE_IP); $record['extra']['user_id'] = isset($_SESSION['user']['id']) ? $_SESSION['user']['id'] : 'NULL'; return $record; }); $handlers = []; foreach ($paths as $level => $path) { $handlers[$level] = (new StreamHandler($path, $level, false))->setFormatter($formatter); } return $handlers; }