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.List;
20 import javax.management.ObjectName;
21
22 import org.apache.logging.log4j.Level;
23 import org.apache.logging.log4j.core.config.AppenderRef;
24 import org.apache.logging.log4j.core.config.LoggerConfig;
25 import org.apache.logging.log4j.core.helpers.Assert;
26
27
28
29
30 public class LoggerConfigAdmin implements LoggerConfigAdminMBean {
31
32 private final String contextName;
33 private final LoggerConfig loggerConfig;
34 private final ObjectName objectName;
35
36
37
38
39
40
41
42
43 public LoggerConfigAdmin(final String contextName, final LoggerConfig loggerConfig) {
44
45 this.contextName = Assert.isNotNull(contextName, "contextName");
46 this.loggerConfig = Assert.isNotNull(loggerConfig, "loggerConfig");
47 try {
48 final String ctxName = Server.escape(this.contextName);
49 final String configName = Server.escape(loggerConfig.getName());
50 final String name = String.format(PATTERN, ctxName, configName);
51 objectName = new ObjectName(name);
52 } catch (final Exception e) {
53 throw new IllegalStateException(e);
54 }
55 }
56
57
58
59
60
61
62
63 public ObjectName getObjectName() {
64 return objectName;
65 }
66
67 @Override
68 public String getName() {
69 return loggerConfig.getName();
70 }
71
72 @Override
73 public String getLevel() {
74 return loggerConfig.getLevel().name();
75 }
76
77 @Override
78 public void setLevel(final String level) {
79 loggerConfig.setLevel(Level.getLevel(level));
80 }
81
82 @Override
83 public boolean isAdditive() {
84 return loggerConfig.isAdditive();
85 }
86
87 @Override
88 public void setAdditive(final boolean additive) {
89 loggerConfig.setAdditive(additive);
90 }
91
92 @Override
93 public boolean isIncludeLocation() {
94 return loggerConfig.isIncludeLocation();
95 }
96
97 @Override
98 public String getFilter() {
99 return String.valueOf(loggerConfig.getFilter());
100 }
101
102 @Override
103 public String[] getAppenderRefs() {
104 final List<AppenderRef> refs = loggerConfig.getAppenderRefs();
105 final String[] result = new String[refs.size()];
106 for (int i = 0; i < result.length; i++) {
107 result[i] = refs.get(i).getRef();
108 }
109 return result;
110 }
111 }