foxcpp / foxcpp/maddy

io_debug: Extra option for only logging on failure

Offen
#776 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
new feature
Vorherrschende Sprache
Go
Sterne
6.1k
Forks
327
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

# Use case

io_debug is currently [a boolean flag](https://maddy.email/reference/endpoints/smtp/#io_debug-boolean).

Turning it on to log everything when debugging either Maddy's sources or on bringing up a new server makes sense. However, it would also be useful for longer-term debugging of more complex issues with server setup if it could log the entire communication only when an error has occurred. Thus successful connections do not need the extra info, whilst problem communication can capture this for days or weeks without needing to generate overly verbose logs.

There is also the possibility that extended logging on failure/rejections/etc. could be valuable for feeding into systems like fail2ban or CrowdSec for blacklisting spam and attackers, enabling such systems to differentiate better between malicious connections and innnocent failures.

# Your idea for a solution

How your solution would work in general?
I haven;t yet looked to see how difficult this would be in terms of implementation. But for the interface, simply adding a third option to the config directive - "on", "off", and e.g. "on_failure" seems suitable to me.

- [x] I'm willing to help with the implementation
* I think I can implement but would appreciate guidance and a review of changes to ensure it's implemented in the required places.

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Beginnen Sie damit, die bestehende Verarbeitung der io_debug-Konfiguration und den Pfad für die Protokollierung der SMTP-Kommunikation nachzuverfolgen; das Issue enthält keinen Datei- oder Test-Einstiegspunkt. Bestätigen Sie, wie Erfolgs- und Fehlerergebnisse erkannt werden, und definieren Sie anschließend Tests für das Verhalten off, on und on_failure, sodass die neue Option die vollständige Kommunikation nur für fehlgeschlagene Interaktionen protokolliert.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
go
Bereich
backend, observability
Issue-Typ
Feature
Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Aktivitätsstatus
Veraltet
Klarheit
Muss geklärt werden
Anfängerfreundlichkeit
25/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.