ajouter la config monolog mattermost

This commit is contained in:
2026-06-15 13:46:50 +02:00
parent d9c0040374
commit dbf23badf9
6 changed files with 88 additions and 39 deletions
+5 -1
View File
@@ -36,4 +36,8 @@ MESSENGER_TRANSPORT_DSN=doctrine://default?auto_setup=0
LISTMONK_BASE_URL=https://listmonk.powerpme.com LISTMONK_BASE_URL=https://listmonk.powerpme.com
LISTMONK_API_USER= LISTMONK_API_USER=
LISTMONK_TOKEN= LISTMONK_TOKEN=
###> LISTMONK/API ### ###> LISTMONK/API ###
###> monolog/mattermost ###
MATTERMOST_WEBHOOK_URL=https://mattermost.powerpme.com/hooks/
###< monolog/mattermost ###
+15 -16
View File
@@ -33,23 +33,22 @@ when@prod:
monolog: monolog:
handlers: handlers:
main: main:
type: fingers_crossed
action_level: error
handler: nested
excluded_http_codes: [404, 405]
channels: ["!deprecation"]
buffer_size: 50 # How many messages should be saved? Prevent memory leaks
nested:
type: stream type: stream
path: php://stderr path: "%kernel.logs_dir%/%kernel.environment%.log"
level: debug level: error
formatter: monolog.formatter.json channels: ["!event"]
console: console:
type: console type: console
process_psr_3_messages: false process_psr_3_messages: false
channels: ["!event", "!doctrine"] channels: ["!event", "!doctrine", "!console"]
deprecation: mattermost_filter:
type: stream type: fingers_crossed
channels: [deprecation] action_level: error # Déclenche l'envoi uniquement à partir du niveau ERROR
path: php://stderr handler: mattermost
formatter: monolog.formatter.json excluded_http_codes: [404, 403]
mattermost:
type: slackwebhook
webhook_url: '%env(MATTERMOST_WEBHOOK_URL)%'
bot_name: 'Symfony Bot' # Nom de l'auteur du message dans Mattermost
icon_emoji: ':boom:' # Emoji pour illustrer le message
level: error
+66
View File
@@ -0,0 +1,66 @@
<?php
namespace App\Controller\Backend;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use App\Service\Frontend\ListmonkMailerService;
use Symfony\Component\Routing\Attribute\Route;
use Psr\Log\LoggerInterface;
#[Route('/admin/test')]
final class TestController extends AbstractController
{
public function __construct(
private readonly ListmonkMailerService $mailer,
) {
}
#[Route('/test1', name: 'app_test_test1')]
public function test1()
{
dd("test1");
}
#[Route('/logger', name: 'app_test_logger')]
public function logger(LoggerInterface $logger): Response
{
// Ceci va déclencher l'envoi vers Mattermost si vous êtes en environnement 'prod'
$logger->error('Bonjour Log Maher Test.', [
'user' => 'John Doe',
'code' => 500
]);
//composer require symfony/monolog-bundle
throw new \Symfony\Component\HttpKernel\Exception\NotFoundHttpException('Csrf non valide Test Test');
//$logger->info('Test log Symfony');
//$logger->warning('Test warning');
//$logger->error('Test error');
//return new Response('Log envoyé !');
}
#[Route('/mailer', name: 'app_test_mailer')]
public function mailer()
{
$result = $this->mailer->send(
['maher.tili@gmail.com'],
7,
['name'=> 'Monjie', 'video'=> 'mon happy movie test', 'date'=> '19/06/2026 15:45', 'url'=> 'https://video.powerpme.com/downloder/user/4/'],
'external',
['Content-Type' => 'application/json; charset=utf-8']
);
dd($result);
return $this->render('/frontend/test.html.twig', []);
}
}
@@ -30,7 +30,6 @@ use App\Entity\UserDownloader;
use App\Entity\AnonymeDownloader; use App\Entity\AnonymeDownloader;
use App\Service\Frontend\DownloadService; use App\Service\Frontend\DownloadService;
use App\Service\Frontend\ListmonkMailerService;
use Symfony\Component\HttpFoundation\BinaryFileResponse; use Symfony\Component\HttpFoundation\BinaryFileResponse;
@@ -47,7 +46,6 @@ final class HomeController extends AbstractController
private readonly TranslatorInterface $translator, private readonly TranslatorInterface $translator,
private ParameterBagInterface $params, private ParameterBagInterface $params,
private DownloadService $downloadService, private DownloadService $downloadService,
private readonly ListmonkMailerService $mailer,
) { ) {
$this->projectDir = $params->get('kernel.project_dir'); $this->projectDir = $params->get('kernel.project_dir');
} }
@@ -346,22 +344,4 @@ final class HomeController extends AbstractController
return $this->redirectToRoute('app_frontend_history'); return $this->redirectToRoute('app_frontend_history');
} }
#[Route('/test', name: 'app_test')]
public function test()
{
die;
$this->mailer->send(
['maher.tili@gmail.com'],
7,
['name'=> 'Monjie', 'video'=> 'mon happy movie test', 'date'=> '19/06/2026 15:45', 'url'=> 'https://video.powerpme.com/downloder/user/4/'],
'external',
['Content-Type' => 'application/json; charset=utf-8']
);
dd($result);
die;
return $this->render('/frontend/test.html.twig', []);
}
} }
+1 -1
View File
@@ -64,7 +64,7 @@ class LoginAuthenticator extends AbstractLoginFormAuthenticator
$this->em->clear(); $this->em->clear();
if ($user->hasRole('ROLE_ADMIN')) { if ($user->hasRole('ROLE_ADMIN')) {
return new RedirectResponse($this->urlGenerator->generate('admin_home_index')); return new RedirectResponse($this->urlGenerator->generate('app_test_test1'));
} else { } else {
return new RedirectResponse($this->urlGenerator->generate('app_frontend_home')); return new RedirectResponse($this->urlGenerator->generate('app_frontend_home'));
} }
+1 -1
View File
@@ -143,6 +143,6 @@
} }
</script> </script>
<script src="{{ asset('assets/js/frontend.js') }}"></script> <script src="{{ asset('assets/js/frontend.js?v=1') }}"></script>
</body> </body>
</html> </html>