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