#spring-boot
#spring-boot
Вопрос:
Я хочу реализовать метод, который выводит журнал на основе значения message.proerpties, используя следующий интерфейс. Что мне делать? logger#info(String messagePropertyKey, Object[] placeholderValues)
Спасибо.
Ответ №1:
Предполагая, что ваш файл message.properties:
messages.success= the service {} is called successfully.
messages.error= the service {} failed with reason {}.
@Configuration
@ConfigurationProperties
@PropertySource("classpath:message.properties")
public class LogMessagesHolder {
private Map<String, String> messages;
public String getMessage(final String key){
return messages.get(key);
}
}
Теперь вы можете использовать LogMessagesHolder
, автоматически подключив его туда, куда хотите
@Slf4J
@Component
public class LogMessagesHolderTest {
@Autowired
private LogMessagesHolder logMessagesHolder
public void testLogSuccess() {
logger.info(logMessagesHolder.getMessage("success"), serviceA);
}
public void testLogError() {
logger.error(logMessagesHolder.getMessage("error"), "serviceA", "failureReason");
}
}