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>
77 lines
2 KiB
PHP
77 lines
2 KiB
PHP
<?php
|
|
|
|
namespace App\Mail;
|
|
|
|
use Illuminate\Bus\Queueable;
|
|
use Illuminate\Contracts\Queue\ShouldQueue;
|
|
use Illuminate\Mail\Mailable;
|
|
use Illuminate\Queue\SerializesModels;
|
|
|
|
class MailLog extends Mailable implements ShouldQueue
|
|
{
|
|
use Queueable, SerializesModels;
|
|
|
|
protected $channel;
|
|
|
|
protected $context;
|
|
|
|
protected $message;
|
|
|
|
protected $data;
|
|
|
|
/**
|
|
* Request-Kontext wird beim Erzeugen eingesammelt, nicht erst in build().
|
|
* Die Mail wird in die Queue gelegt und im Worker gibt es weder eine
|
|
* angemeldete Session noch den urspruenglichen Request.
|
|
*/
|
|
protected $origin;
|
|
|
|
protected $userAgent;
|
|
|
|
protected $occurredAt;
|
|
|
|
public $subject;
|
|
|
|
public function __construct($channel, $context, $message, $data)
|
|
{
|
|
$this->channel = $channel;
|
|
$this->context = $context;
|
|
$this->message = $message;
|
|
$this->data = $data;
|
|
$this->subject = 'mivita Log';
|
|
$this->origin = \Auth::check()
|
|
? \Auth::user()->id.' | '.\Auth::user()->email
|
|
: null;
|
|
$this->userAgent = request()->header('User-Agent');
|
|
$this->occurredAt = now()->format('d.m.Y H:i');
|
|
}
|
|
|
|
public function build()
|
|
{
|
|
$title = 'Log: '.$this->channel.' '.$this->context;
|
|
|
|
// make Data readable
|
|
$data = json_encode($this->data, JSON_PRETTY_PRINT);
|
|
|
|
$content = "\n";
|
|
$content .= 'Channel: '.$this->channel."\n";
|
|
$content .= 'Context: '.$this->context."\n";
|
|
if ($this->origin) {
|
|
$content .= 'From User: '.$this->origin."\n";
|
|
}
|
|
$content .= "\n";
|
|
$content .= 'Message: '.$this->message."\n";
|
|
$content .= "\n";
|
|
$content .= 'Data: '.$data."\n";
|
|
$content .= "\n";
|
|
$content .= "\n";
|
|
$content .= 'Time: '.$this->occurredAt;
|
|
$content .= "\n";
|
|
$content .= $this->userAgent;
|
|
|
|
return $this->view('emails.sys')->with([
|
|
'title' => $title,
|
|
'content' => $content,
|
|
]);
|
|
}
|
|
}
|