diff --git a/pom.xml b/pom.xml
index 75f2a07..55ec92f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -31,7 +31,7 @@
io.github.elf4j
elf4j-impl-core
- 0.5.5
+ 0.5.6
jar
elf4j-impl-core
Native logging service provider implementation of ELF4J (Easy Logging Facade For Java)
diff --git a/src/main/java/elf4j/impl/core/configuration/DefaultServiceConfiguration.java b/src/main/java/elf4j/impl/core/configuration/DefaultServiceConfiguration.java
index a2251cb..c7629bc 100644
--- a/src/main/java/elf4j/impl/core/configuration/DefaultServiceConfiguration.java
+++ b/src/main/java/elf4j/impl/core/configuration/DefaultServiceConfiguration.java
@@ -49,16 +49,12 @@ public class DefaultServiceConfiguration implements ServiceConfiguration {
*
*/
public DefaultServiceConfiguration() {
- this(new PropertiesLoader());
- }
-
- DefaultServiceConfiguration(PropertiesLoader propertiesLoader) {
- this.propertiesLoader = propertiesLoader;
- setRepositories(propertiesLoader.load());
+ this.propertiesLoader = new PropertiesLoader();
+ setRepositories(this.propertiesLoader.load());
}
DefaultServiceConfiguration(LevelRepository levelRepository, WriterRepository writerRepository) {
- this(new PropertiesLoader());
+ this.propertiesLoader = new PropertiesLoader();
this.levelRepository = levelRepository;
this.writerRepository = writerRepository;
}
@@ -87,11 +83,10 @@ public void refresh(@Nullable Properties properties) {
}
private boolean loadLoggerConfigurationCache(NativeLogger nativeLogger) {
- Level loggerMinimumLevel = levelRepository.getLoggerMinimumLevel(nativeLogger);
+ Level loggerConfigurationMinimumLevel = levelRepository.getLoggerMinimumLevel(nativeLogger);
Level logServiceWriterMinimumLevel = writerRepository.getLogServiceWriter().getMinimumLevel();
- int effectiveMinimumLevelOrdinal =
- Math.max(loggerMinimumLevel.ordinal(), logServiceWriterMinimumLevel.ordinal());
- return nativeLogger.getLevel().ordinal() >= effectiveMinimumLevelOrdinal;
+ return nativeLogger.getLevel().ordinal() >= Math.max(loggerConfigurationMinimumLevel.ordinal(),
+ logServiceWriterMinimumLevel.ordinal());
}
private void setRepositories(@NonNull Properties properties) {
diff --git a/src/main/java/elf4j/impl/core/configuration/LevelRepository.java b/src/main/java/elf4j/impl/core/configuration/LevelRepository.java
index f5ee15e..de6ac5c 100644
--- a/src/main/java/elf4j/impl/core/configuration/LevelRepository.java
+++ b/src/main/java/elf4j/impl/core/configuration/LevelRepository.java
@@ -37,7 +37,7 @@
*/
public class LevelRepository {
private static final Level DEFAULT_LOGGER_MINIMUM_LEVEL = Level.TRACE;
- final Map loggerNameValueMap = new HashMap<>();
+ final Map loggerMinimumLevels = new HashMap<>();
/**
* @param properties configuration source of all minimum output levels for loggers
@@ -48,10 +48,11 @@ public LevelRepository(Properties properties) {
String[] nameSegments = name.split("@");
switch (nameSegments.length) {
case 1:
- loggerNameValueMap.put("", Level.valueOf(properties.getProperty("level").trim().toUpperCase()));
+ loggerMinimumLevels.put("",
+ Level.valueOf(properties.getProperty("level").trim().toUpperCase()));
break;
case 2:
- loggerNameValueMap.put(nameSegments[1].trim(),
+ loggerMinimumLevels.put(nameSegments[1].trim(),
Level.valueOf(properties.getProperty(name).trim().toUpperCase()));
break;
default:
@@ -68,9 +69,12 @@ public LevelRepository(Properties properties) {
public Level getLoggerMinimumLevel(NativeLogger nativeLogger) {
String callerClassName = nativeLogger.getName();
int rootPackageLength = callerClassName.indexOf('.');
+ if (rootPackageLength == -1) {
+ rootPackageLength = callerClassName.length();
+ }
while (callerClassName.length() >= rootPackageLength) {
- if (loggerNameValueMap.containsKey(callerClassName)) {
- return loggerNameValueMap.get(callerClassName);
+ if (loggerMinimumLevels.containsKey(callerClassName)) {
+ return loggerMinimumLevels.get(callerClassName);
}
if (callerClassName.length() == rootPackageLength) {
break;
@@ -81,7 +85,7 @@ public Level getLoggerMinimumLevel(NativeLogger nativeLogger) {
}
callerClassName = callerClassName.substring(0, end);
}
- Level configuredRootLevel = loggerNameValueMap.get("");
+ Level configuredRootLevel = loggerMinimumLevels.get("");
return configuredRootLevel == null ? DEFAULT_LOGGER_MINIMUM_LEVEL : configuredRootLevel;
}
}
diff --git a/src/test/java/elf4j/impl/core/configuration/DefaultServiceConfigurationTest.java b/src/test/java/elf4j/impl/core/configuration/DefaultServiceConfigurationTest.java
index c98f846..aaf4c10 100644
--- a/src/test/java/elf4j/impl/core/configuration/DefaultServiceConfigurationTest.java
+++ b/src/test/java/elf4j/impl/core/configuration/DefaultServiceConfigurationTest.java
@@ -48,7 +48,7 @@ class DefaultServiceConfigurationTest {
@Nested
class isEnabled {
@Test
- void loadFromReposOnlyOnce() {
+ void cacheLoadFromReposOnlyOnce() {
DefaultServiceConfiguration defaultLoggingConfiguration =
new DefaultServiceConfiguration(mockLevelRepository, mockWriterRepository);
NativeLogger nativeLogger = new NativeLogger("test.owner.class.Name", Level.OFF, mockLogService);