1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.logging.log4j.core.jmx;
18
19 import java.util.Objects;
20
21 import javax.management.ObjectName;
22
23 import org.apache.logging.log4j.core.Appender;
24 import org.apache.logging.log4j.core.filter.AbstractFilterable;
25
26
27
28
29 public class AppenderAdmin implements AppenderAdminMBean {
30
31 private final String contextName;
32 private final Appender appender;
33 private final ObjectName objectName;
34
35
36
37
38
39
40
41
42 public AppenderAdmin(final String contextName, final Appender appender) {
43
44 this.contextName = Objects.requireNonNull(contextName, "contextName");
45 this.appender = Objects.requireNonNull(appender, "appender");
46 try {
47 final String ctxName = Server.escape(this.contextName);
48 final String configName = Server.escape(appender.getName());
49 final String name = String.format(PATTERN, ctxName, configName);
50 objectName = new ObjectName(name);
51 } catch (final Exception e) {
52 throw new IllegalStateException(e);
53 }
54 }
55
56
57
58
59
60
61
62 public ObjectName getObjectName() {
63 return objectName;
64 }
65
66 @Override
67 public String getName() {
68 return appender.getName();
69 }
70
71 @Override
72 public String getLayout() {
73 return String.valueOf(appender.getLayout());
74 }
75
76 @Override
77 public boolean isIgnoreExceptions() {
78 return appender.ignoreExceptions();
79 }
80
81 @Override
82 public String getErrorHandler() {
83 return String.valueOf(appender.getHandler());
84 }
85
86 @Override
87 public String getFilter() {
88 if (appender instanceof AbstractFilterable) {
89 return String.valueOf(((AbstractFilterable) appender).getFilter());
90 }
91 return null;
92 }
93 }