Mercurial Hosting > luan
annotate src/luan/modules/logging/Log4j.java @ 1365:6617763dfd76
fix logging and lucene backup
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Wed, 12 Jun 2019 22:16:10 -0600 |
parents | 7483108154bb |
children |
rev | line source |
---|---|
376
0a75ed73bccc
partly revert rev 538c19ad1272 (logging)
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1 package luan.modules.logging; |
0a75ed73bccc
partly revert rev 538c19ad1272 (logging)
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2 |
1336 | 3 import java.util.Enumeration; |
1365
6617763dfd76
fix logging and lucene backup
Franklin Schmidt <fschmidt@gmail.com>
parents:
1336
diff
changeset
|
4 import java.util.List; |
6617763dfd76
fix logging and lucene backup
Franklin Schmidt <fschmidt@gmail.com>
parents:
1336
diff
changeset
|
5 import java.util.ArrayList; |
376
0a75ed73bccc
partly revert rev 538c19ad1272 (logging)
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
6 import org.apache.log4j.Logger; |
1321
307e76ccd0d6
generalize separate logging
Franklin Schmidt <fschmidt@gmail.com>
parents:
775
diff
changeset
|
7 import org.apache.log4j.LogManager; |
307e76ccd0d6
generalize separate logging
Franklin Schmidt <fschmidt@gmail.com>
parents:
775
diff
changeset
|
8 import org.apache.log4j.Hierarchy; |
307e76ccd0d6
generalize separate logging
Franklin Schmidt <fschmidt@gmail.com>
parents:
775
diff
changeset
|
9 import org.apache.log4j.Level; |
1336 | 10 import org.apache.log4j.Appender; |
1321
307e76ccd0d6
generalize separate logging
Franklin Schmidt <fschmidt@gmail.com>
parents:
775
diff
changeset
|
11 import org.apache.log4j.spi.LoggerRepository; |
307e76ccd0d6
generalize separate logging
Franklin Schmidt <fschmidt@gmail.com>
parents:
775
diff
changeset
|
12 import org.apache.log4j.spi.RootLogger; |
1332 | 13 import org.apache.log4j.spi.RepositorySelector; |
1333
25746915a241
merge Luan and LuanState
Franklin Schmidt <fschmidt@gmail.com>
parents:
1332
diff
changeset
|
14 import luan.Luan; |
376
0a75ed73bccc
partly revert rev 538c19ad1272 (logging)
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
15 import luan.LuanException; |
0a75ed73bccc
partly revert rev 538c19ad1272 (logging)
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
16 import luan.LuanTable; |
0a75ed73bccc
partly revert rev 538c19ad1272 (logging)
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
17 |
0a75ed73bccc
partly revert rev 538c19ad1272 (logging)
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
18 |
1332 | 19 public final class Log4j { |
1336 | 20 private static final String KEY = "Logger.Repository"; |
21 private static final LoggerRepository defaultLoggerRepository = LogManager.getLoggerRepository(); | |
1321
307e76ccd0d6
generalize separate logging
Franklin Schmidt <fschmidt@gmail.com>
parents:
775
diff
changeset
|
22 |
1336 | 23 public static void newLoggerRepository(Luan luan) { |
24 Logger oldLogger = defaultLoggerRepository.getRootLogger(); | |
25 Logger newLogger = new RootLogger(Level.DEBUG); | |
26 LoggerRepository lr = new Hierarchy(newLogger); | |
27 for( Enumeration en = oldLogger.getAllAppenders(); en.hasMoreElements(); ) { | |
28 Appender appender = (Appender)en.nextElement(); | |
29 newLogger.addAppender(appender); | |
30 } | |
1321
307e76ccd0d6
generalize separate logging
Franklin Schmidt <fschmidt@gmail.com>
parents:
775
diff
changeset
|
31 luan.registry().put(KEY,lr); |
307e76ccd0d6
generalize separate logging
Franklin Schmidt <fschmidt@gmail.com>
parents:
775
diff
changeset
|
32 } |
307e76ccd0d6
generalize separate logging
Franklin Schmidt <fschmidt@gmail.com>
parents:
775
diff
changeset
|
33 |
1333
25746915a241
merge Luan and LuanState
Franklin Schmidt <fschmidt@gmail.com>
parents:
1332
diff
changeset
|
34 private static LoggerRepository getLoggerRepository(Luan luan) { |
1332 | 35 LoggerRepository lr = (LoggerRepository)luan.registry().get(KEY); |
36 return lr != null ? lr : defaultLoggerRepository; | |
37 } | |
38 | |
39 static { | |
40 LogManager.setRepositorySelector( new RepositorySelector() { | |
41 public LoggerRepository getLoggerRepository() { | |
1333
25746915a241
merge Luan and LuanState
Franklin Schmidt <fschmidt@gmail.com>
parents:
1332
diff
changeset
|
42 Luan luan = LuanLogger.luan(); |
1332 | 43 return luan==null ? defaultLoggerRepository : Log4j.getLoggerRepository(luan); |
44 } | |
45 }, new Object() ); | |
1321
307e76ccd0d6
generalize separate logging
Franklin Schmidt <fschmidt@gmail.com>
parents:
775
diff
changeset
|
46 } |
307e76ccd0d6
generalize separate logging
Franklin Schmidt <fschmidt@gmail.com>
parents:
775
diff
changeset
|
47 |
1333
25746915a241
merge Luan and LuanState
Franklin Schmidt <fschmidt@gmail.com>
parents:
1332
diff
changeset
|
48 public static Logger getRootLogger(Luan luan) { |
1321
307e76ccd0d6
generalize separate logging
Franklin Schmidt <fschmidt@gmail.com>
parents:
775
diff
changeset
|
49 return getLoggerRepository(luan).getRootLogger(); |
307e76ccd0d6
generalize separate logging
Franklin Schmidt <fschmidt@gmail.com>
parents:
775
diff
changeset
|
50 } |
307e76ccd0d6
generalize separate logging
Franklin Schmidt <fschmidt@gmail.com>
parents:
775
diff
changeset
|
51 |
1333
25746915a241
merge Luan and LuanState
Franklin Schmidt <fschmidt@gmail.com>
parents:
1332
diff
changeset
|
52 public static Logger getLogger(Luan luan,String name) { |
1321
307e76ccd0d6
generalize separate logging
Franklin Schmidt <fschmidt@gmail.com>
parents:
775
diff
changeset
|
53 return getLoggerRepository(luan).getLogger(name); |
307e76ccd0d6
generalize separate logging
Franklin Schmidt <fschmidt@gmail.com>
parents:
775
diff
changeset
|
54 } |
1365
6617763dfd76
fix logging and lucene backup
Franklin Schmidt <fschmidt@gmail.com>
parents:
1336
diff
changeset
|
55 |
6617763dfd76
fix logging and lucene backup
Franklin Schmidt <fschmidt@gmail.com>
parents:
1336
diff
changeset
|
56 // because logger.removeAllAppenders() closes the appenders |
6617763dfd76
fix logging and lucene backup
Franklin Schmidt <fschmidt@gmail.com>
parents:
1336
diff
changeset
|
57 public static void removeAllAppenders(Logger logger) { |
6617763dfd76
fix logging and lucene backup
Franklin Schmidt <fschmidt@gmail.com>
parents:
1336
diff
changeset
|
58 List<Appender> list = new ArrayList<Appender>(); |
6617763dfd76
fix logging and lucene backup
Franklin Schmidt <fschmidt@gmail.com>
parents:
1336
diff
changeset
|
59 for( Enumeration en = logger.getAllAppenders(); en.hasMoreElements(); ) { |
6617763dfd76
fix logging and lucene backup
Franklin Schmidt <fschmidt@gmail.com>
parents:
1336
diff
changeset
|
60 Appender appender = (Appender)en.nextElement(); |
6617763dfd76
fix logging and lucene backup
Franklin Schmidt <fschmidt@gmail.com>
parents:
1336
diff
changeset
|
61 list.add(appender); |
6617763dfd76
fix logging and lucene backup
Franklin Schmidt <fschmidt@gmail.com>
parents:
1336
diff
changeset
|
62 } |
6617763dfd76
fix logging and lucene backup
Franklin Schmidt <fschmidt@gmail.com>
parents:
1336
diff
changeset
|
63 for( Appender appender : list ) { |
6617763dfd76
fix logging and lucene backup
Franklin Schmidt <fschmidt@gmail.com>
parents:
1336
diff
changeset
|
64 logger.removeAppender(appender); |
6617763dfd76
fix logging and lucene backup
Franklin Schmidt <fschmidt@gmail.com>
parents:
1336
diff
changeset
|
65 } |
6617763dfd76
fix logging and lucene backup
Franklin Schmidt <fschmidt@gmail.com>
parents:
1336
diff
changeset
|
66 if( logger.getAllAppenders().hasMoreElements() ) |
6617763dfd76
fix logging and lucene backup
Franklin Schmidt <fschmidt@gmail.com>
parents:
1336
diff
changeset
|
67 throw new RuntimeException(); |
6617763dfd76
fix logging and lucene backup
Franklin Schmidt <fschmidt@gmail.com>
parents:
1336
diff
changeset
|
68 } |
376
0a75ed73bccc
partly revert rev 538c19ad1272 (logging)
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
69 } |