Mercurial Hosting > luan
comparison src/goodjava/logger/GoodLoggerFactory.java @ 1450:28b1ddacfad3
logger work
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Sun, 01 Mar 2020 13:47:02 -0700 |
parents | 6fc083e1d08c |
children | 219f2b937f2b |
comparison
equal
deleted
inserted
replaced
1449:dd14d2dce7ee | 1450:28b1ddacfad3 |
---|---|
1 package goodjava.logger; | 1 package goodjava.logger; |
2 | 2 |
3 import java.util.Map; | 3 import java.util.Map; |
4 import java.util.HashMap; | 4 import java.util.HashMap; |
5 import goodjava.logging.ILoggerFactory; | |
6 import goodjava.logging.Logger; | |
7 | 5 |
8 | 6 |
9 public class GoodLoggerFactory implements ILoggerFactory { | 7 public final class GoodLoggerFactory { |
10 private final Map<String,GoodLogger> map = new HashMap<String,GoodLogger>(); | 8 private GoodLoggerFactory() {} // never |
11 | 9 |
12 @Override public synchronized Logger getLogger(String name) { | 10 public static final Configurer DEFAULT_CONFIGURER; |
11 static { | |
12 Layout layout = new ListLayout(Layouts.LEVEL," - ",Layouts.MESSAGE,"\n",Layouts.THROWABLE); | |
13 Appender appender = new ConsoleAppender(layout,System.err); | |
14 DEFAULT_CONFIGURER = new SimpleConfigurer(Level.INFO,appender); | |
15 } | |
16 private static final Map<String,GoodLogger> map = new HashMap<String,GoodLogger>(); | |
17 private static Configurer configurer = DEFAULT_CONFIGURER; | |
18 | |
19 public static synchronized GoodLogger getLogger(String name) { | |
13 GoodLogger logger = map.get(name); | 20 GoodLogger logger = map.get(name); |
14 if( logger == null ) { | 21 if( logger == null ) { |
15 logger = new GoodLogger(name); | 22 logger = new GoodLogger(name); |
23 configurer.configure(logger); | |
16 map.put(name,logger); | 24 map.put(name,logger); |
17 } | 25 } |
18 return logger; | 26 return logger; |
19 } | 27 } |
28 | |
29 public static synchronized Configurer getConfigurer() { | |
30 return configurer; | |
31 } | |
32 | |
33 public static synchronized void setConfigurer(Configurer configurer) { | |
34 GoodLoggerFactory.configurer = configurer; | |
35 for( GoodLogger logger : map.values() ) { | |
36 configurer.configure(logger); | |
37 } | |
38 } | |
39 | |
20 } | 40 } |