1
18
19 package org.jboss.logging;
20
21 import java.util.HashMap;
22 import java.util.Map;
23
24 import org.apache.logging.log4j.ThreadContext;
25
26 final class Log4j2LoggerProvider implements LoggerProvider {
27
28 @Override
29 public Log4j2Logger getLogger(String name) {
30 return new Log4j2Logger(name);
31 }
32
33 @Override
34 public void clearMdc() {
35 ThreadContext.clearMap();
36 }
37
38 @Override
39 public Object putMdc(String key, Object value) {
40 try {
41 return ThreadContext.get(key);
42 } finally {
43 ThreadContext.put(key, String.valueOf(value));
44 }
45 }
46
47 @Override
48 public Object getMdc(String key) {
49 return ThreadContext.get(key);
50 }
51
52 @Override
53 public void removeMdc(String key) {
54 ThreadContext.remove(key);
55 }
56
57 @Override
58 public Map<String, Object> getMdcMap() {
59 return new HashMap<String, Object>(ThreadContext.getImmutableContext());
60 }
61
62 @Override
63 public void clearNdc() {
64 ThreadContext.clearStack();
65 }
66
67 @Override
68 public String getNdc() {
69 return ThreadContext.peek();
70 }
71
72 @Override
73 public int getNdcDepth() {
74 return ThreadContext.getDepth();
75 }
76
77 @Override
78 public String popNdc() {
79 return ThreadContext.pop();
80 }
81
82 @Override
83 public String peekNdc() {
84 return ThreadContext.peek();
85 }
86
87 @Override
88 public void pushNdc(String message) {
89 ThreadContext.push(message);
90 }
91
92 @Override
93 public void setNdcMaxDepth(int maxDepth) {
94 ThreadContext.trim(maxDepth);
95 }
96 }
97