view src/goodjava/logger/GoodLoggerFactory.java @ 1453:928be2a4d565

fix postgres backup
author Franklin Schmidt <fschmidt@gmail.com>
date Mon, 02 Mar 2020 15:09:10 -0700
parents 28b1ddacfad3
children 219f2b937f2b
line wrap: on
line source

package goodjava.logger;

import java.util.Map;
import java.util.HashMap;


public final class GoodLoggerFactory {
	private GoodLoggerFactory() {}  // never

	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);
		}
	}

}