#89: Log-Datei landet im MSI-Betrieb verlaesslich auf der Platte

Log4j2 referenziert nun ${sys:log.directory} mit nutzerschreibbarem
Fallback (~/pdf-umbenenner/logs). Die System-Property wird vor dem
ersten Logger-Zugriff aus der aktiven Konfigurationsdatei gesetzt
(EarlyLogDirectoryInitializer), damit Log4j2 bereits bei der
Erstinitialisierung den korrekten Pfad kennt.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-04 17:52:35 +02:00
parent 479d176536
commit 6a5ae4e7b0
3 changed files with 101 additions and 5 deletions
@@ -6,9 +6,13 @@
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" charset="UTF-8"/>
</Console>
<!-- Rolling file appender for logs in ./logs/ directory -->
<RollingFile name="File" fileName="logs/pdf-umbenenner.log"
filePattern="logs/pdf-umbenenner-%d{yyyy-MM-dd}-%i.log.gz">
<!-- Rolling file appender. Honours the system property log.directory which
is set very early in the bootstrap from the active configuration file.
The fallback intentionally points to a guaranteed-writable user-scoped
directory so MSI installs (where the working directory typically lives
under Program Files and is not user-writable) still produce log files. -->
<RollingFile name="File" fileName="${sys:log.directory:-${sys:user.home}/pdf-umbenenner/logs}/pdf-umbenenner.log"
filePattern="${sys:log.directory:-${sys:user.home}/pdf-umbenenner/logs}/pdf-umbenenner-%d{yyyy-MM-dd}-%i.log.gz">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" charset="UTF-8"/>
<Policies>
<TimeBasedTriggeringPolicy interval="1" modulate="true"/>