package de.gecheckt.pdf.umbenenner.application.validation.technicaltest;

import java.util.Optional;

/**
 * Ausgehender Port zur Diagnose des aktiven Log-Ausgabepfads.
 * <p>
 * Implementierungen lesen den tatsächlich von der Logging-Infrastruktur verwendeten
 * Dateipfad aus der laufenden Konfiguration des Logging-Frameworks aus. Der Port ist
 * provider-neutral; er kennt weder Log4j2 noch andere Framework-spezifische Typen.
 * <p>
 * Diese Information ergänzt den konfigurierten {@code log.directory}-Wert aus der
 * Properties-Datei und zeigt, wo Logeinträge tatsächlich landen – unabhängig davon,
 * ob das Log-Verzeichnis zum Zeitpunkt des Tests beschreibbar ist.
 */
public interface LogDiagnosticsPort {

    /**
     * Ermittelt den absoluten Dateipfad der aktiven Log-Ausgabedatei.
     * <p>
     * Gibt einen leeren {@link Optional} zurück, wenn der Pfad nicht bestimmbar ist –
     * beispielsweise weil kein dateibasierter Appender aktiv ist oder die
     * Logging-Konfiguration nicht ausgelesen werden kann.
     *
     * @return absoluter Pfad der aktiven Log-Datei; leer wenn nicht bestimmbar
     */
    Optional<String> resolveActiveLogFilePath();
}
