Mam zdefiniowanego Appling RollingFile zdefiniowanego w pliku log4j2.xml.Parametr JVM użytkownika w konfiguracji log4j2
<RollingFile name="RollingFile" fileName="/logs/app.log"
filePattern="logs/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%i.log.gz">
<PatternLayout>
<Pattern>%d{HH:mm:ss.SSS} - %-5p - %m - [%l]%n</Pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy />
<SizeBasedTriggeringPolicy size="10 MB" />
</Policies>
<DefaultRolloverStrategy max="20" />
</RollingFile>
Co chcę zrobić, to przekazać ten parametr JVM przy starcie:
-Dapp_home=/home/admin/server
documentation jest dość prosta. Z tego co rozumiem, powinno działać tak:
<RollingFile name="RollingFile" fileName="${jvmrunargs:app_home}/logs/app.log"
Ale tak nie jest. Sprawdziłem, że działa on ogólnie, używając ścieżki absolut.
W innych zastosowaniach, gdzie używam log4j (1.x) działa tak:
log4j.appender.file.File=${app_home}/logs/app.log
Twoja odpowiedź jest lepiej napisana, ale treść/odpowiedź jest taka sama. Usuwam moje. Z jakiegoś powodu jest przycisk edycji, użyj go zamiast opublikować duplikat. – alan7678
Nigdy nie używałam przycisku edycji do innych celów niż formatowanie kodu. Czuje się jak manipulowanie cudzą własnością. Ale myślę, że to jest sposób, w jaki powinien działać Stackoverflow. Zapamiętam to następnym razem. Dzięki za wskazanie tego! – hzpz
Ta sama odpowiedź, ten sam wynik! To działa! :) Dziękuję wam obu! – Chris