diff --git a/src/main/java/elf4j/engine/service/configuration/RefreshableLogServiceConfiguration.java b/src/main/java/elf4j/engine/service/configuration/RefreshableLogServiceConfiguration.java index dd441d2..71719c8 100644 --- a/src/main/java/elf4j/engine/service/configuration/RefreshableLogServiceConfiguration.java +++ b/src/main/java/elf4j/engine/service/configuration/RefreshableLogServiceConfiguration.java @@ -30,6 +30,7 @@ import elf4j.engine.service.BufferingWriterThread; import elf4j.engine.service.LogServiceManager; import elf4j.engine.service.WriterThread; +import elf4j.engine.service.util.PropertiesUtils; import elf4j.engine.service.writer.BufferedStandardOutput; import elf4j.engine.service.writer.LogWriter; import elf4j.util.InternalLogger; @@ -45,7 +46,6 @@ */ @ToString public class RefreshableLogServiceConfiguration implements LogServiceConfiguration, Refreshable { - private static final String UNDEFINED_INT = "0"; private final Map loggerConfigurationCache = new ConcurrentHashMap<>(); private final PropertiesLoader propertiesLoader; private boolean noop; @@ -117,13 +117,8 @@ private void parseConfigurations(@Nullable Properties properties) { } this.callerLevelRepository = CallerLevelRepository.from(properties); this.writerRepository = WriterRepository.from(properties); - this.writerThread = - new BufferingWriterThread(Integer.parseInt(properties.getProperty("buffer.front", UNDEFINED_INT) - .replace("_", "") - .replace(",", ""))); + this.writerThread = new BufferingWriterThread(PropertiesUtils.getAsInt("buffer.front", properties)); this.standardOutputBufferCapacity = - new BufferedStandardOutput(Integer.parseInt(properties.getProperty("buffer.back", UNDEFINED_INT) - .replace("_", "") - .replace(",", ""))); + new BufferedStandardOutput(PropertiesUtils.getAsInt("buffer.back", properties)); } } diff --git a/src/main/java/elf4j/engine/service/util/PropertiesUtils.java b/src/main/java/elf4j/engine/service/util/PropertiesUtils.java index c881af3..c4b61e3 100644 --- a/src/main/java/elf4j/engine/service/util/PropertiesUtils.java +++ b/src/main/java/elf4j/engine/service/util/PropertiesUtils.java @@ -37,6 +37,8 @@ */ public class PropertiesUtils { + private static final String UNDEFINED_INT = "0"; + private PropertiesUtils() { } @@ -72,4 +74,15 @@ public static List> getPropertiesGroupOfType(String type, @N .map(name -> getChildProperties(name, properties)) .collect(Collectors.toList()); } + + /** + * @param name + * full key in properties + * @param properties + * to look up in + * @return int value in specified properties, default to 0 if missing + */ + public static int getAsInt(String name, @NonNull Properties properties) { + return Integer.parseInt(properties.getProperty(name, UNDEFINED_INT).replace("_", "").replace(",", "")); + } } \ No newline at end of file