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 org.apache.logging.log4j.Logger;
20 import org.apache.logging.log4j.message.MessageFactory;
21 import org.apache.logging.log4j.spi.LoggerContext;
22 import org.slf4j.LoggerFactory;
23
24 import java.util.concurrent.ConcurrentHashMap;
25 import java.util.concurrent.ConcurrentMap;
26
27
28
29
30 public class SLF4JLoggerContext implements LoggerContext {
31 private final ConcurrentMap<String, SLF4JLogger> loggers = new ConcurrentHashMap<String, SLF4JLogger>();
32
33 public Object getExternalContext() {
34 return null;
35 }
36
37 public Logger getLogger(final String name) {
38 if (!loggers.containsKey(name)) {
39 loggers.putIfAbsent(name, new SLF4JLogger(name, LoggerFactory.getLogger(name)));
40 }
41 return loggers.get(name);
42 }
43
44 public Logger getLogger(final String name, final MessageFactory messageFactory) {
45 if (!loggers.containsKey(name)) {
46 loggers.putIfAbsent(name, new SLF4JLogger(name, messageFactory, LoggerFactory.getLogger(name)));
47 }
48 return loggers.get(name);
49 }
50
51 public boolean hasLogger(final String name) {
52 return loggers.containsKey(name);
53 }
54 }