APP_URL=https://dev.toolbox.fluidbook.com
HEADER_COLOR="#df4759"
+
LOG_CHANNEL=stack
APP_LOG=daily
--- /dev/null
+<?php
+
+namespace App\Logging;
+
+use App\Models\User;
+use Illuminate\Http\Request;
+use Monolog\Formatter\LineFormatter;
+use Monolog\Handler\SlackWebhookHandler;
+use Monolog\LogRecord;
+
+class SlackFormatter
+{
+ protected $request;
+
+ public function __construct(Request $request = null)
+ {
+ $this->request = $request;
+ }
+
+ public function __invoke($logger)
+ {
+ foreach ($logger->getHandlers() as $handler) {
+ if ($handler instanceof SlackWebhookHandler) {
+ $handler->setFormatter(new LineFormatter(
+ '[%datetime%] %channel%.%level_name%: %message% %context% %extra%'
+ ));
+
+ $handler->pushProcessor([$this, 'processLogRecord']);
+ }
+ }
+ }
+
+ public function processLogRecord(LogRecord $record): LogRecord
+ {
+
+ if ($this->request) {
+ $record->extra += [
+ 'URL' => $this->request->url(),
+ ];
+ }
+ /** @var User $user */
+ $user = backpack_user();
+ if ($user) {
+ $record->extra += [
+ 'user' => $user->getNameAttribute() . ' (' . $user->id . ')',
+ ];
+ }
+
+ return $record;
+ }
+}
"php-ffmpeg/php-ffmpeg": "^v1.1.0",
"rodneyrehm/plist": "^2.0",
"rustici-software/scormcloud-api-v2-client-php": "^2.1.0",
- "symfony/http-client": "^v6.3.0"
+ "symfony/http-client": "^v6.3.0",
},
"require-dev": {
"spatie/laravel-ignition": "^2.1.3",
'slack' => [
'driver' => 'slack',
+ 'tap' => [\App\Logging\SlackFormatter::class],
'url' => env('LOG_SLACK_WEBHOOK_URL'),
'username' => 'Laravel Log',
'emoji' => ':boom:',
@extends(backpack_view('blank'))
@php
+ \Illuminate\Support\Facades\Log::warning('test !!');
\App\Widgets::fluidbookQuoteWidgets();
\App\Widgets::notificationsWidget(['class' => 'col-sm-8 dashboard-wrapper'],'dashboard',__('Notifications'));
\App\Widgets::teamWidgets(['class' => 'col-sm-4 dashboard-wrapper'],'dashboard',__('Planning de l\'équipe'));