1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.logwrapper;
20
21 import java.util.HashMap;
22 import java.util.Map;
23 import org.slf4j.event.Level;
24
25
26
27
28 public class LogLevelRecorder {
29 private static final Map<String, Level> ACCEPTED_LEVELS = new HashMap<>();
30
31 static {
32 ACCEPTED_LEVELS.put("WARN", Level.WARN);
33 ACCEPTED_LEVELS.put("WARNING", Level.WARN);
34 ACCEPTED_LEVELS.put("ERROR", Level.ERROR);
35 }
36
37 private final Level logThreshold;
38 private boolean metThreshold = false;
39
40 public LogLevelRecorder(String threshold) {
41 logThreshold = determineThresholdLevel(threshold);
42 }
43
44 private Level determineThresholdLevel(String input) {
45 final Level result = ACCEPTED_LEVELS.get(input);
46 if (result == null) {
47 String message = String.format(
48 "%s is not a valid log severity threshold. Valid severities are WARN/WARNING and ERROR.", input);
49 throw new IllegalArgumentException(message);
50 }
51 return result;
52 }
53
54 public void record(Level logLevel) {
55 if (!metThreshold && logLevel.toInt() >= logThreshold.toInt()) {
56 metThreshold = true;
57 }
58 }
59
60 public boolean metThreshold() {
61 return metThreshold;
62 }
63 }