diff options
author | Jon Marius Venstad <jvenstad@yahoo-inc.com> | 2018-08-16 16:51:06 +0200 |
---|---|---|
committer | Jon Marius Venstad <jvenstad@yahoo-inc.com> | 2018-08-16 16:51:06 +0200 |
commit | a62a3b47817ebb52f8ea4413d37804d4da459171 (patch) | |
tree | d63616ed896cd9b6d86c99fe5f211c50c7576c7d /vespalog | |
parent | 47f77d0c8a94c3adb8389b581cacf24c03aa4290 (diff) |
Look for upper case log levels by modifying the search term
Diffstat (limited to 'vespalog')
-rw-r--r-- | vespalog/src/main/java/com/yahoo/log/LogLevel.java | 19 | ||||
-rw-r--r-- | vespalog/src/test/java/com/yahoo/log/LogLevelTestCase.java | 9 |
2 files changed, 10 insertions, 18 deletions
diff --git a/vespalog/src/main/java/com/yahoo/log/LogLevel.java b/vespalog/src/main/java/com/yahoo/log/LogLevel.java index f9cc4e9b7e3..daf2a0ff44d 100644 --- a/vespalog/src/main/java/com/yahoo/log/LogLevel.java +++ b/vespalog/src/main/java/com/yahoo/log/LogLevel.java @@ -1,6 +1,7 @@ // Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.log; +import java.nio.charset.StandardCharsets; import java.util.HashMap; import java.util.Map; import java.util.LinkedHashMap; @@ -104,21 +105,13 @@ public class LogLevel extends Level { // manually enter the valid log levels we shall recognize in VESPA nameToLevel = new LinkedHashMap<String, Level>(32); nameToLevel.put("fatal", FATAL); - nameToLevel.put("FATAL", FATAL); nameToLevel.put("error", ERROR); - nameToLevel.put("ERROR", ERROR); nameToLevel.put("warning", WARNING); - nameToLevel.put("WARNING", WARNING); nameToLevel.put("config", CONFIG); - nameToLevel.put("CONFIG", CONFIG); nameToLevel.put("info", INFO); - nameToLevel.put("INFO", INFO); nameToLevel.put("event", EVENT); - nameToLevel.put("EVENT", EVENT); nameToLevel.put("debug", DEBUG); - nameToLevel.put("DEBUG", DEBUG); nameToLevel.put("spam", SPAM); - nameToLevel.put("SPAM", SPAM); } private LogLevel(String name, int value) { @@ -139,7 +132,15 @@ public class LogLevel extends Level { public static Level parse(String name) { Level l = nameToLevel.get(name); if (l == null) { - return UNKNOWN; + // If name was not found, try changing the case of each character from (assumed) upper to lower: + byte[] nameBytes = name.getBytes(StandardCharsets.UTF_8); + for (int i = 0; i < nameBytes.length; i++) + nameBytes[i] += 32; + l = nameToLevel.get(new String(nameBytes)); + + if (l == null) { + return UNKNOWN; + } } return l; } diff --git a/vespalog/src/test/java/com/yahoo/log/LogLevelTestCase.java b/vespalog/src/test/java/com/yahoo/log/LogLevelTestCase.java index aa9a2b36221..8caa01f775b 100644 --- a/vespalog/src/test/java/com/yahoo/log/LogLevelTestCase.java +++ b/vespalog/src/test/java/com/yahoo/log/LogLevelTestCase.java @@ -55,23 +55,14 @@ public class LogLevelTestCase { @Test public void testNameToLevelMapping () { assertEquals(LogLevel.UNKNOWN, LogLevel.parse("unknown")); - assertEquals(LogLevel.UNKNOWN, LogLevel.parse("UNKNOWN")); assertEquals(LogLevel.FATAL, LogLevel.parse("fatal")); - assertEquals(LogLevel.FATAL, LogLevel.parse("FATAL")); assertEquals(LogLevel.ERROR, LogLevel.parse("error")); - assertEquals(LogLevel.ERROR, LogLevel.parse("ERROR")); assertEquals(LogLevel.WARNING, LogLevel.parse("warning")); - assertEquals(LogLevel.WARNING, LogLevel.parse("WARNING")); assertEquals(LogLevel.INFO, LogLevel.parse("info")); - assertEquals(LogLevel.INFO, LogLevel.parse("INFO")); assertEquals(LogLevel.CONFIG, LogLevel.parse("config")); - assertEquals(LogLevel.CONFIG, LogLevel.parse("CONFIG")); assertEquals(LogLevel.EVENT, LogLevel.parse("event")); - assertEquals(LogLevel.EVENT, LogLevel.parse("EVENT")); assertEquals(LogLevel.DEBUG, LogLevel.parse("debug")); - assertEquals(LogLevel.DEBUG, LogLevel.parse("DEBUG")); assertEquals(LogLevel.SPAM, LogLevel.parse("spam")); - assertEquals(LogLevel.SPAM, LogLevel.parse("SPAM")); LogLevel.getLevels().values().forEach(level -> assertEquals(level, LogLevel.parse(level.getName()))); } |