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