Dokumentation und Arbeitspakete angelegt
This commit is contained in:
62
docs/arbeitspakete/m1/AP04-logging-adapter.md
Normal file
62
docs/arbeitspakete/m1/AP04-logging-adapter.md
Normal file
@@ -0,0 +1,62 @@
|
||||
# AP04 – Logging-Adapter (SLF4J-Fassade + Log4j2-Bindung)
|
||||
|
||||
## Ziel
|
||||
|
||||
Sicherstellen, dass im gesamten Quellcode **nur noch SLF4J-Typen importiert werden** (`org.slf4j.Logger`, `org.slf4j.LoggerFactory`), außer in einem dedizierten **Logging-Adapter** und im **Bootstrap**. Die konkrete Log4j2-Bindung darf nur an diesen zwei Stellen sichtbar sein, wie von `technik-und-architektur.md` gefordert.
|
||||
|
||||
## Voraussetzungen
|
||||
|
||||
- AP03 (Paketstruktur vorhanden)
|
||||
|
||||
## Scope IN
|
||||
|
||||
- Alle Stellen im Produktivcode, die `org.apache.logging.log4j.LogManager` oder `org.apache.logging.log4j.Logger` importieren, werden umgestellt auf:
|
||||
```java
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
private static final Logger logger = LoggerFactory.getLogger(MyClass.class);
|
||||
```
|
||||
- Anlage einer minimalen `log4j2.xml` in `src/main/resources/`:
|
||||
- Console-Appender (StdErr)
|
||||
- File-Appender mit Zielpfad, der später (AP07) durch den Bootstrap überschrieben wird; für M1 genügt ein Default-Pfad `logs/asv-format-validator.log`
|
||||
- Log-Level `INFO` für `de.gecheckt.asv`, `WARN` für alles andere
|
||||
- Deutsche Log-Texte bleiben auf Deutsch
|
||||
- Anlage eines `LoggingConfigurator` oder ähnlich im Paket `adapter.out.logging`, der Log4j2 **programmatisch** konfigurieren kann (Zielpfad der Log-Datei setzbar). Für M1 reicht eine Klasse mit einer Methode `void configureLogFile(Path logFile)`, die noch keine tiefe Magie macht, aber das Interface definiert.
|
||||
- Architekturcheck: per `grep` sicherstellen, dass außerhalb von `adapter.out.logging` und `bootstrap` keine `org.apache.logging.log4j.*`-Imports mehr existieren.
|
||||
|
||||
## Scope OUT
|
||||
|
||||
- tatsächliche dynamische Log-Datei-Umleitung pro Lauf (das ist AP07)
|
||||
- Log-Rotation, Log-Compression, eigene Appender-Klassen
|
||||
- Logging-Policies, Log-Level pro Klasse
|
||||
- Umbau der Log-Nachrichten selbst (Wortlaut, Formatierung)
|
||||
|
||||
## Schritte
|
||||
|
||||
1. Branch `m1/ap04-logging-adapter`
|
||||
2. In allen Produktiv-Klassen außer `adapter.out.logging` und `bootstrap`: Log4j2-Imports durch SLF4J-Imports ersetzen
|
||||
3. Minimale `log4j2.xml` in `src/main/resources/` anlegen
|
||||
4. `LoggingConfigurator` in `adapter.out.logging` anlegen (Skelett)
|
||||
5. `mvn clean verify` laufen lassen, muss grün sein
|
||||
6. `grep -rn "org.apache.logging.log4j" src/main/java/ | grep -v "adapter/out/logging\|bootstrap"` muss **leer** sein
|
||||
7. Commit `M1-AP04: Logging-Adapter, SLF4J-Fassade etabliert`
|
||||
8. Abschlussbericht schreiben
|
||||
|
||||
## Abnahmekriterien
|
||||
|
||||
- kein Import von `org.apache.logging.log4j.*` außerhalb von `adapter.out.logging` und `bootstrap` (Grep-Nachweis im Bericht)
|
||||
- `log4j2.xml` in `src/main/resources/` vorhanden
|
||||
- `LoggingConfigurator`-Klasse in `adapter.out.logging` vorhanden (mindestens Skelett)
|
||||
- `mvn clean verify` ist grün
|
||||
- alle bestehenden Tests laufen weiterhin (SLF4J ist API-kompatibel; falls Tests wegen Logger-Mocks brechen, müssen sie angepasst werden — dann im Bericht dokumentieren)
|
||||
- Abschlussbericht liegt vor
|
||||
|
||||
## Rest-Risiken und offene Punkte
|
||||
|
||||
- Falls bestehende Tests Log4j2-Logger mocken: Anpassung nötig. Im Zweifel Logger-Mocks entfernen, Logging ist keine Testlogik.
|
||||
- `log4j2.xml` hat in M1 einen statischen Dateipfad. Der dynamische Pfad pro Lauf kommt erst in AP07.
|
||||
|
||||
## Bericht
|
||||
|
||||
`docs/arbeitspakete/m1/berichte/AP04-bericht.md` nach `templates/ap-bericht.md`.
|
||||
Reference in New Issue
Block a user