<?php
namespace App\Controller\Rest;
use FOS\RestBundle\Controller\Annotations as Rest;
use FOS\RestBundle\Controller\FOSRestController;
use FOS\RestBundle\View\View;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use App\Entity\Log;
class SystemLogController extends AbstractController {
private $logger;
public function __construct() {
$this->logger = new Log();
}
/**
* Log an event
* @Rest\Post("/log/{section}/{source}/{severity}")
*/
public function log(Request $request, string $section, string $source, string $severity) {
if( $this->logger->validate($section) ) {
$severity = strtoupper($severity);
$level = "\App\Entity\Log::LOG_LVL_{$severity}";
if(defined($level)) {
$em = $this->getDoctrine()->getManager();
//$data = json_decode($request->getContent(), true);
$context = (string) $request->get('context');
$msg = (string) $request->get('msg');
$triggeredBy = (string) $request->get('triggeredBy');
$level = constant($level);
$this->logger->setMessage($msg);
$this->logger->setLevel($level);
$this->logger->setLevelName($severity);
$this->logger->setContext($context);
$this->logger->setSection($section);
$this->logger->setSource($source);
$this->logger->setTriggeredBy($triggeredBy);
//dump($this->logger);die;
$em->persist($this->logger);
$em->flush();
//$response = new \Symfony\Component\HttpFoundation\JsonResponse(array('status' => '__success' ));
//$response->setEncodingOptions($response->getEncodingOptions() | JSON_PRETTY_PRINT);
//return $response;
return $this->json(array('status' => '__success' ));
}
}
return $this->json(array('status' => '__success' ));
/*
*/
}
}