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