Chciałbym zmienić niektóre właściwości z pliku log4j2.xml w zależności od mojego application.properties, więc na przykład zdefiniuj niektóre właściwości, a następnie zastąpić w log4j2 te właściwości, które są parametrami.Jak dokonać log4j2 konfigurowalny przez środowisko przy użyciu rozruchu sprężyny 1.3.6.RELEASE
Podbiegłam różnymi podejściami, ale nadal nie udało mi się uzyskać właściwej odpowiedzi. Chciałbym mieć różne konfiguracje w zależności od środowiska (DEV, QA lub PROD). Czy ktoś może mi doradzić, jak to osiągnąć?
Tak, staram się mieć to w moim właściwości
#Place holders for log4j2.xml file
log.file.path=/opt/tomcat/logs
log.file.name=dummydummy
log.file.size=100 MB
log.level=DEBUG
Proszę znaleźć mój przykładowy log4j2 poniżej ...
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN" monitorInterval="30">
<Properties>
<Property name="PID">????</Property>
<property name="name">my-log</property>
</Properties>
<Appenders>
<RollingFile name="file" fileName="${log.file.path}${log.file}.log"
filePattern="${log.file.path}${log.file}-%d{yyyy-MM-dd}-%i.log.gz">
<PatternLayout
pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} %5p ${sys:PID} --- [%t] %c{1}(%M:%L) : %m%n%wEx" />
<Policies>
<TimeBasedTriggeringPolicy /><!-- Rotated everyday -->
<SizeBasedTriggeringPolicy size="${log.file.size}" /> <!-- Or every 100 MB -->
</Policies>
</RollingFile>
<Console name="Console" target="SYSTEM_OUT" follow="true">
<PatternLayout
pattern="%clr{%d{yyyy-MM-dd HH:mm:ss.SSS}}{faint} %clr{%5p} %clr{${sys:PID}}{magenta} %clr{---}{faint} %clr{[%t]}{faint} %clr{%c{1}(%M:%L)}{cyan} %clr{:}{faint} %m%n%wEx" />
</Console>
</Appenders>
<Loggers>
<Logger name="org.hibernate.validator.internal.util.Version"
level="warn" />
<Logger name="org.apache.coyote.http11.Http11NioProtocol" level="warn" />
<Logger name="org.apache.tomcat.util.net.NioSelectorPool" level="warn" />
<Logger name="org.apache.catalina.startup.DigesterFactory" level="error" />
<Logger name="org.springframework.web" level="error" />
<Root level="${log.level}">
<AppenderRef ref="Console" />
<AppenderRef ref="file" />
</Root>
</Loggers>
</Configuration>
Dzięki
Dzięki za odpowiedź, działa. Nadal mam inne pytanie, a jeśli mam wiele plików właściwości (w zależności od środowiska, na przykład application.properties, właściwości aplikacji deweloperskich itp.), Czy istnieje sposób na przełączanie między plikami? Wydaje się, że log4j2 wybiera tylko domyślną aplikację.properties –
Możesz utworzyć dedykowaną konfigurację log4j2 dla każdego pliku środowiska/właściwości: log4j2-env-dev.xml z env-dev.właściwości, log4j2-env-test.xml z env-test.properties itp. Możesz podać nazwę pliku konfiguracyjnego log4j2 jako argument jvm -Dlog4j.configurationFile =. –
asch
jeśli używasz 'env.yml', jak to zrobić? – Dreampie