1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.logging.log4j.core.config.plugins.visitors;
19
20 import java.util.Map;
21
22 import org.apache.logging.log4j.core.LogEvent;
23 import org.apache.logging.log4j.core.config.Configuration;
24 import org.apache.logging.log4j.core.config.Node;
25 import org.apache.logging.log4j.core.config.plugins.PluginBuilderAttribute;
26 import org.apache.logging.log4j.core.util.NameUtil;
27
28
29
30
31
32
33
34
35 public class PluginBuilderAttributeVisitor extends AbstractPluginVisitor<PluginBuilderAttribute> {
36
37 public PluginBuilderAttributeVisitor() {
38 super(PluginBuilderAttribute.class);
39 }
40
41 @Override
42 public Object visit(final Configuration configuration, final Node node, final LogEvent event,
43 final StringBuilder log) {
44 final String overridden = this.annotation.value();
45 final String name = overridden.isEmpty() ? this.member.getName() : overridden;
46 final Map<String, String> attributes = node.getAttributes();
47 final String rawValue = removeAttributeValue(attributes, name, this.aliases);
48 final String replacedValue = this.substitutor.replace(event, rawValue);
49 final Object value = convert(replacedValue, null);
50 final Object debugValue = this.annotation.sensitive() ? NameUtil.md5(value + this.getClass().getName()) : value;
51 log.append(name).append("=\"").append(debugValue).append('"');
52 return value;
53 }
54 }