我正在尝试从tomcat服务器context.xml读取属性到我的log4j2.properties。我尝试使用{sys:} {env:},也搜索,但没有运气。
log4j2.properties
appender.email=org.apache.net.SMTPAppender
appender.email.type=smtp
appender.email.name = Email
appender.email.SMTPHost=${env:log4j.smtpHost}
appender.email.From=${env:log4j.emailAddress}
appender.email.BufferSize=512
appender.email.layout.type=PatternLayout
appender.email.layout.Pattern=[%x%d{ISO8601}]%n%n%-5p%n%n%c%n%n%m%M%n%n
我无法读取属性${env:log4j.smtpHost}或$ {env: log4j.emailAddress}
pom.xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>
使用排除所有spring引导依赖
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
context.xml
<Environment name="log4j.smtpHost" override="false"
type="java.lang.String" value="testsmtp" />
<Environment name="log4j.emailAddress"
override="false" type="java.lang.String" value="test@gmail" />
请让我知道如何将此读取到log4j2属性或任何其他解决方案,使SMTP属性可配置。
我们正在读取java中context.xml的属性,并将其设置为system属性。
System.setProperty("log4j.smtpHost", read from context.xml)
,然后在log4j2.properties中读取。
appender.email.SMTPHost = $ {sys: log4j.smtpHost}
希望对别人有所帮助。