Mercurial Hosting > luan
diff 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 |
line wrap: on
line diff
--- a/src/goodjava/logger/GoodLoggerFactory.java Fri Feb 28 21:14:23 2020 -0700 +++ b/src/goodjava/logger/GoodLoggerFactory.java Sun Mar 01 13:47:02 2020 -0700 @@ -2,19 +2,39 @@ import java.util.Map; import java.util.HashMap; -import goodjava.logging.ILoggerFactory; -import goodjava.logging.Logger; -public class GoodLoggerFactory implements ILoggerFactory { - private final Map<String,GoodLogger> map = new HashMap<String,GoodLogger>(); +public final class GoodLoggerFactory { + private GoodLoggerFactory() {} // never - @Override public synchronized Logger getLogger(String name) { + public static final Configurer DEFAULT_CONFIGURER; + static { + Layout layout = new ListLayout(Layouts.LEVEL," - ",Layouts.MESSAGE,"\n",Layouts.THROWABLE); + Appender appender = new ConsoleAppender(layout,System.err); + DEFAULT_CONFIGURER = new SimpleConfigurer(Level.INFO,appender); + } + private static final Map<String,GoodLogger> map = new HashMap<String,GoodLogger>(); + private static Configurer configurer = DEFAULT_CONFIGURER; + + public static synchronized GoodLogger getLogger(String name) { GoodLogger logger = map.get(name); if( logger == null ) { logger = new GoodLogger(name); + configurer.configure(logger); map.put(name,logger); } return logger; } + + public static synchronized Configurer getConfigurer() { + return configurer; + } + + public static synchronized void setConfigurer(Configurer configurer) { + GoodLoggerFactory.configurer = configurer; + for( GoodLogger logger : map.values() ) { + configurer.configure(logger); + } + } + }