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
24 import org.slf4j.event.Level;
25
26
27
28
29 public class LogLevelRecorder {
30 private static final Map<String, Level> ACCEPTED_LEVELS = new HashMap<>();
31
32 static {
33 ACCEPTED_LEVELS.put("WARN", Level.WARN);
34 ACCEPTED_LEVELS.put("WARNING", Level.WARN);
35 ACCEPTED_LEVELS.put("ERROR", Level.ERROR);
36 }
37
38 private final Level logThreshold;
39 private boolean metThreshold = false;
40
41 public LogLevelRecorder(String threshold) {
42 logThreshold = determineThresholdLevel(threshold);
43 }
44
45 private Level determineThresholdLevel(String input) {
46 final Level result = ACCEPTED_LEVELS.get(input);
47 if (result == null) {
48 String message = String.format(
49 "%s is not a valid log severity threshold. Valid severities are WARN/WARNING and ERROR.", input);
50 throw new IllegalArgumentException(message);
51 }
52 return result;
53 }
54
55 public void record(Level logLevel) {
56 if (!metThreshold && logLevel.toInt() >= logThreshold.toInt()) {
57 metThreshold = true;
58 }
59 }
60
61 public boolean metThreshold() {
62 return metThreshold;
63 }
64 }