1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.logging.slf4j;
18
19 import java.util.concurrent.ConcurrentHashMap;
20 import java.util.concurrent.ConcurrentMap;
21
22 import org.apache.logging.log4j.message.MessageFactory;
23 import org.apache.logging.log4j.spi.LoggerContext;
24 import org.apache.logging.log4j.spi.ExtendedLogger;
25 import org.slf4j.LoggerFactory;
26
27
28
29
30 public class SLF4JLoggerContext implements LoggerContext {
31 private final ConcurrentMap<String, SLF4JLogger> loggers = new ConcurrentHashMap<String, SLF4JLogger>();
32
33 @Override
34 public Object getExternalContext() {
35 return null;
36 }
37
38 @Override
39 public ExtendedLogger getLogger(final String name) {
40 if (!loggers.containsKey(name)) {
41 loggers.putIfAbsent(name, new SLF4JLogger(name, LoggerFactory.getLogger(name)));
42 }
43 return loggers.get(name);
44 }
45
46 @Override
47 public ExtendedLogger getLogger(final String name, final MessageFactory messageFactory) {
48 if (!loggers.containsKey(name)) {
49 loggers.putIfAbsent(name, new SLF4JLogger(name, messageFactory, LoggerFactory.getLogger(name)));
50 }
51 return loggers.get(name);
52 }
53
54 @Override
55 public boolean hasLogger(final String name) {
56 return loggers.containsKey(name);
57 }
58 }