1
2
3
4
5
6
7
8
9
10 package ch.qos.logback.classic.pattern;
11
12 import ch.qos.logback.classic.spi.LoggingEvent;
13
14 public abstract class NamedConverter extends ClassicConverter {
15
16 Abbreviator abbreviator = null;
17
18
19
20
21
22
23
24
25 protected abstract String getFullyQualifiedName(final LoggingEvent event);
26
27 public void start() {
28 String optStr = getFirstOption();
29 if (optStr != null) {
30 try {
31 int targetLen = Integer.parseInt(optStr);
32 if (targetLen == 0) {
33 abbreviator = new ClassNameOnlyAbbreviator();
34 } else if (targetLen > 0) {
35 abbreviator = new TargetLengthBasedClassNameAbbreviator(targetLen);
36 }
37 } catch (NumberFormatException nfe) {
38
39 }
40 }
41 }
42
43 public String convert(LoggingEvent event) {
44 String fqn = getFullyQualifiedName(event);
45
46 if (abbreviator == null) {
47 return fqn;
48 } else {
49 return abbreviator.abbreviate(fqn);
50 }
51 }
52 }