1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 package ch.qos.logback.access.common.boolex;
16
17 import ch.qos.logback.access.common.spi.IAccessEvent;
18 import ch.qos.logback.core.boolex.EvaluationException;
19 import ch.qos.logback.core.boolex.EventEvaluatorBase;
20
21
22
23
24
25
26
27
28 public class StatusCodeEventEvaluator extends EventEvaluatorBase<IAccessEvent> {
29
30 final static int UNSET = -1;
31 int statusCode = UNSET;
32
33 @Override
34 public void start() {
35 if(statusCode == UNSET) {
36 addWarn("No status code set");
37 return;
38 }
39 super.start();
40 }
41 @Override
42 public boolean evaluate(IAccessEvent iAccessEvent) throws NullPointerException, EvaluationException {
43 if (!isStarted()) {
44 throw new IllegalStateException("Evaluator [" + this + "] was called in stopped state");
45 }
46 boolean result = (iAccessEvent.getStatusCode() == statusCode);
47 return result;
48 }
49
50 public int getStatusCode() {
51 return statusCode;
52 }
53
54 public void setStatusCode(int statusCode) {
55 this.statusCode = statusCode;
56 }
57 }