Мое требование - отправить сообщение EMails из файла Logback.xml, если в моем приложении и в теме EMail возникает какая-либо ошибка: мне нужно отправить значение из файла Application.properties, который снова заполняется внешним источником.
в приведенном ниже коде: если я сохраню аргументы spring.app.url и spring.app.name как постоянные (не комментируя первые 2 строки в файле application.properties и комментируя последние 2): я могу добиться своеготребования, но как только я пытаюсь получить это значение из переменных env: оно не отправляет значение в электронных письмах (хотя оно печатает его правильно в моем классе)
Файл класса LoggingTest:
@RestController
public class LoggingTest {
Log logger = LogFactory.getLog(LoggingTest.class);
@Value("${spring.app.url}")
String environmentUrl;
@Value("${spring.app.name}")
String appName;
@RequestMapping("/")
public String Home() {
System.out.println("Test environmentUrl : " + environmentUrl);
System.out.println("Test appName : " + appName);
logger.error("Error Occured : Send EMail");
return "Hello";
}}
Файл Application.properties:
#spring.app.url="Dummy Application URL"
#spring.app.name="Dummy Application Name"
spring.app.url=${vcap.services.<ServiceName>.credentials.url}
spring.app.name=${vcap.application.name}
Файл Logback.xml:
<configuration>
<property resource="application.properties" />
<appender name="errMailer" class="ch.qos.logback.classic.net.SMTPAppender">
<smtpHost>host values</smtpHost>
<smtpPort>port number</smtpPort>
<from>abc@xyz.com</from>
<to>abc@xyz.com</to>
<subject>App-Name : ${spring.app.name}</subject>
<layout class="ch.qos.logback.classic.html.HTMLLayout"/>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>ERROR</level>
</filter>
</appender>
<root level="ERROR">
<appender-ref ref="errMailer" />
</root>
</configuration>