comparison 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
comparison
equal deleted inserted replaced
1335:e0cf0d108a77 1336:7483108154bb
1 package luan.modules.logging; 1 package luan.modules.logging;
2 2
3 import java.util.Enumeration;
3 import org.apache.log4j.Logger; 4 import org.apache.log4j.Logger;
4 import org.apache.log4j.LogManager; 5 import org.apache.log4j.LogManager;
5 import org.apache.log4j.Hierarchy; 6 import org.apache.log4j.Hierarchy;
6 import org.apache.log4j.Level; 7 import org.apache.log4j.Level;
8 import org.apache.log4j.Appender;
7 import org.apache.log4j.spi.LoggerRepository; 9 import org.apache.log4j.spi.LoggerRepository;
8 import org.apache.log4j.spi.RootLogger; 10 import org.apache.log4j.spi.RootLogger;
9 import org.apache.log4j.spi.RepositorySelector; 11 import org.apache.log4j.spi.RepositorySelector;
10 import luan.Luan; 12 import luan.Luan;
11 import luan.LuanException; 13 import luan.LuanException;
12 import luan.LuanTable; 14 import luan.LuanTable;
13 15
14 16
15 public final class Log4j { 17 public final class Log4j {
16 private static String KEY = "Logger.Repository"; 18 private static final String KEY = "Logger.Repository";
19 private static final LoggerRepository defaultLoggerRepository = LogManager.getLoggerRepository();
17 20
18 public static void newLoggerRepository(Luan luan) throws LuanException { 21 public static void newLoggerRepository(Luan luan) {
19 LoggerRepository lr = new Hierarchy(new RootLogger(Level.DEBUG)); 22 Logger oldLogger = defaultLoggerRepository.getRootLogger();
23 Logger newLogger = new RootLogger(Level.DEBUG);
24 LoggerRepository lr = new Hierarchy(newLogger);
25 for( Enumeration en = oldLogger.getAllAppenders(); en.hasMoreElements(); ) {
26 Appender appender = (Appender)en.nextElement();
27 newLogger.addAppender(appender);
28 }
20 luan.registry().put(KEY,lr); 29 luan.registry().put(KEY,lr);
21 LuanTable module = (LuanTable)luan.require("luan:logging/Log4j.luan");
22 module.fn("init_root").call();
23 } 30 }
24
25 private static final LoggerRepository defaultLoggerRepository = LogManager.getLoggerRepository();
26 31
27 private static LoggerRepository getLoggerRepository(Luan luan) { 32 private static LoggerRepository getLoggerRepository(Luan luan) {
28 LoggerRepository lr = (LoggerRepository)luan.registry().get(KEY); 33 LoggerRepository lr = (LoggerRepository)luan.registry().get(KEY);
29 return lr != null ? lr : defaultLoggerRepository; 34 return lr != null ? lr : defaultLoggerRepository;
30 } 35 }