diff src/luan/modules/logging/Log4j.java @ 1336:7483108154bb

minor logging
author Franklin Schmidt <fschmidt@gmail.com>
date Thu, 14 Feb 2019 05:22:22 -0700
parents e0cf0d108a77
children 6617763dfd76
line wrap: on
line diff
--- a/src/luan/modules/logging/Log4j.java	Thu Feb 14 03:10:45 2019 -0700
+++ b/src/luan/modules/logging/Log4j.java	Thu Feb 14 05:22:22 2019 -0700
@@ -1,9 +1,11 @@
 package luan.modules.logging;
 
+import java.util.Enumeration;
 import org.apache.log4j.Logger;
 import org.apache.log4j.LogManager;
 import org.apache.log4j.Hierarchy;
 import org.apache.log4j.Level;
+import org.apache.log4j.Appender;
 import org.apache.log4j.spi.LoggerRepository;
 import org.apache.log4j.spi.RootLogger;
 import org.apache.log4j.spi.RepositorySelector;
@@ -13,17 +15,20 @@
 
 
 public final class Log4j {
-	private static String KEY = "Logger.Repository";
+	private static final String KEY = "Logger.Repository";
+	private static final LoggerRepository defaultLoggerRepository = LogManager.getLoggerRepository();
 
-	public static void newLoggerRepository(Luan luan) throws LuanException {
-		LoggerRepository lr =  new Hierarchy(new RootLogger(Level.DEBUG));
+	public static void newLoggerRepository(Luan luan) {
+		Logger oldLogger = defaultLoggerRepository.getRootLogger();
+		Logger newLogger = new RootLogger(Level.DEBUG);
+		LoggerRepository lr = new Hierarchy(newLogger);
+		for( Enumeration en = oldLogger.getAllAppenders(); en.hasMoreElements(); ) {
+			Appender appender = (Appender)en.nextElement();
+			newLogger.addAppender(appender);
+		}
 		luan.registry().put(KEY,lr);
-		LuanTable module = (LuanTable)luan.require("luan:logging/Log4j.luan");
-		module.fn("init_root").call();
 	}
 
-	private static final LoggerRepository defaultLoggerRepository = LogManager.getLoggerRepository();
-
 	private static LoggerRepository getLoggerRepository(Luan luan) {
 		LoggerRepository lr = (LoggerRepository)luan.registry().get(KEY);
 		return lr != null ? lr : defaultLoggerRepository;