Log-Analyse 26.08. (P1-1, P2-1, P2-7, P2-8): - MyLog schrieb in den nicht definierten Kanal userabo (109 EMERGENCY- Eintraege, laravel.log rotierte nicht mehr); jetzt abo_order. - MyLog verschickt die Benachrichtigung ueber die Queue, ein Mailfehler bricht den Zahllauf nicht mehr ab. MailLog sammelt Nutzer, User-Agent und Zeit beim Erzeugen ein, weil der Worker keinen Request hat. - Abgelehnte OAuth-Anfragen (falscher grant_type) werden als Warnung geloggt statt als Fehler gemailt. - payments:check-accounts loggt je Berater nur noch auf debug und schreibt am Ende eine Zusammenfassung (geprueft, versendet, uebersprungen). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
41 lines
1.3 KiB
PHP
41 lines
1.3 KiB
PHP
<?php
|
|
|
|
namespace App\Services;
|
|
|
|
use App\Mail\MailLog;
|
|
use Illuminate\Support\Facades\Mail;
|
|
|
|
class MyLog
|
|
{
|
|
public static function writeLog($channel = 'payment', $context = 'error', $message = '', $data = [], $mail = true)
|
|
{
|
|
switch ($context) {
|
|
case 'notice':
|
|
\Log::channel($channel)->notice($message.' : '.json_encode($data));
|
|
break;
|
|
case 'warning':
|
|
\Log::channel($channel)->warning($message.' : '.json_encode($data));
|
|
break;
|
|
case 'info':
|
|
\Log::channel($channel)->info($message.' : '.json_encode($data));
|
|
break;
|
|
default:
|
|
\Log::channel($channel)->error($message.' : '.json_encode($data));
|
|
break;
|
|
}
|
|
|
|
if (! $mail) {
|
|
return;
|
|
}
|
|
|
|
// Die Benachrichtigung laeuft ueber die Queue: der Zahllauf darf nicht auf
|
|
// den SMTP-Roundtrip warten und ein Mailfehler darf ihn nicht abbrechen.
|
|
try {
|
|
Mail::to(config('app.exception_mail'))->queue(new MailLog($channel, $context, $message, $data));
|
|
} catch (\Throwable $e) {
|
|
\Log::channel($channel)->warning('MyLog: Benachrichtigungsmail konnte nicht zugestellt werden', [
|
|
'error' => $e->getMessage(),
|
|
]);
|
|
}
|
|
}
|
|
}
|