1
2
3
4
5
6
7
8
9
10
11 package psiprobe.tools.logging.logback13;
12
13 import ch.qos.logback.core.OutputStreamAppender;
14 import ch.qos.logback.core.encoder.Encoder;
15 import ch.qos.logback.core.encoder.LayoutWrappingEncoder;
16
17 import java.io.File;
18 import java.nio.file.Path;
19
20 import psiprobe.tools.logging.AbstractLogDestination;
21
22
23
24
25 public class Logback13AppenderAccessor extends AbstractLogDestination {
26
27
28 private Logback13LoggerAccessor loggerAccessor;
29
30
31
32
33
34
35 public Logback13LoggerAccessor getLoggerAccessor() {
36 return loggerAccessor;
37 }
38
39
40
41
42
43
44 public void setLoggerAccessor(Logback13LoggerAccessor loggerAccessor) {
45 this.loggerAccessor = loggerAccessor;
46 }
47
48 @Override
49 public boolean isContext() {
50 return getLoggerAccessor().isContext();
51 }
52
53 @Override
54 public boolean isRoot() {
55 return getLoggerAccessor().isRoot();
56 }
57
58 @Override
59 public String getName() {
60 return getLoggerAccessor().getName();
61 }
62
63
64
65
66
67
68
69 @Override
70 public String getLogType() {
71 return "logback13";
72 }
73
74
75
76
77
78
79 @Override
80 public String getIndex() {
81 return (String) getProperty(getTarget(), "name", null);
82 }
83
84
85
86
87
88
89
90
91
92
93
94 @Override
95 public File getFile() {
96 String fileName = (String) getProperty(getTarget(), "file", null);
97 return fileName != null ? Path.of(fileName).toFile() : getStdoutFile();
98 }
99
100 @Override
101 public String getEncoding() {
102 if (getTarget() instanceof OutputStreamAppender appender) {
103 Encoder<?> encoder = appender.getEncoder();
104 if (encoder instanceof LayoutWrappingEncoder base) {
105 if (base.getCharset() != null) {
106 return base.getCharset().name();
107 }
108 }
109 }
110 return null;
111 }
112
113
114
115
116
117
118 @Override
119 public String getLevel() {
120 return getLoggerAccessor().getLevel();
121 }
122
123
124
125
126
127
128
129
130
131 @Override
132 public String[] getValidLevels() {
133 return new String[] {"OFF", "ERROR", "WARN", "INFO", "DEBUG", "TRACE", "ALL"};
134 }
135
136 }