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 import org.apache.logging.log4j.util.StringBuilders;
28
29
30
31
32
33
34
35
36 public class PluginBuilderAttributeVisitor extends AbstractPluginVisitor<PluginBuilderAttribute> {
37
38 public PluginBuilderAttributeVisitor() {
39 super(PluginBuilderAttribute.class);
40 }
41
42 @Override
43 public Object visit(final Configuration configuration, final Node node, final LogEvent event,
44 final StringBuilder log) {
45 final String overridden = this.annotation.value();
46 final String name = overridden.isEmpty() ? this.member.getName() : overridden;
47 final Map<String, String> attributes = node.getAttributes();
48 final String rawValue = removeAttributeValue(attributes, name, this.aliases);
49 final String replacedValue = this.substitutor.replace(event, rawValue);
50 final Object value = convert(replacedValue, null);
51 final Object debugValue = this.annotation.sensitive() ? NameUtil.md5(value + this.getClass().getName()) : value;
52 StringBuilders.appendKeyDqValue(log, "name", debugValue);
53 return value;
54 }
55 }