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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
7483108154bb minor logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 1335
diff changeset
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
7483108154bb minor logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 1335
diff changeset
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
11b7e11f9ed5 cleaner logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 1321
diff changeset
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
11b7e11f9ed5 cleaner logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 1321
diff changeset
19 public final class Log4j {
1336
7483108154bb minor logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 1335
diff changeset
20 private static final String KEY = "Logger.Repository";
7483108154bb minor logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 1335
diff changeset
21 private static final LoggerRepository defaultLoggerRepository = LogManager.getLoggerRepository();
1321
307e76ccd0d6 generalize separate logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 775
diff changeset
22
1336
7483108154bb minor logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 1335
diff changeset
23 public static void newLoggerRepository(Luan luan) {
7483108154bb minor logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 1335
diff changeset
24 Logger oldLogger = defaultLoggerRepository.getRootLogger();
7483108154bb minor logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 1335
diff changeset
25 Logger newLogger = new RootLogger(Level.DEBUG);
7483108154bb minor logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 1335
diff changeset
26 LoggerRepository lr = new Hierarchy(newLogger);
7483108154bb minor logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 1335
diff changeset
27 for( Enumeration en = oldLogger.getAllAppenders(); en.hasMoreElements(); ) {
7483108154bb minor logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 1335
diff changeset
28 Appender appender = (Appender)en.nextElement();
7483108154bb minor logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 1335
diff changeset
29 newLogger.addAppender(appender);
7483108154bb minor logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 1335
diff changeset
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
11b7e11f9ed5 cleaner logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 1321
diff changeset
35 LoggerRepository lr = (LoggerRepository)luan.registry().get(KEY);
11b7e11f9ed5 cleaner logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 1321
diff changeset
36 return lr != null ? lr : defaultLoggerRepository;
11b7e11f9ed5 cleaner logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 1321
diff changeset
37 }
11b7e11f9ed5 cleaner logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 1321
diff changeset
38
11b7e11f9ed5 cleaner logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 1321
diff changeset
39 static {
11b7e11f9ed5 cleaner logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 1321
diff changeset
40 LogManager.setRepositorySelector( new RepositorySelector() {
11b7e11f9ed5 cleaner logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 1321
diff changeset
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
11b7e11f9ed5 cleaner logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 1321
diff changeset
43 return luan==null ? defaultLoggerRepository : Log4j.getLoggerRepository(luan);
11b7e11f9ed5 cleaner logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 1321
diff changeset
44 }
11b7e11f9ed5 cleaner logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 1321
diff changeset
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 }