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 }