annotate src/luan/modules/logging/Log4j.java @ 1332:11b7e11f9ed5

cleaner logging
author Franklin Schmidt <fschmidt@gmail.com>
date Tue, 12 Feb 2019 21:50:26 -0700
parents src/luan/modules/logging/LuanLogger.java@307e76ccd0d6
children 25746915a241
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
0a75ed73bccc partly revert rev 538c19ad1272 (logging)
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
3 import org.apache.log4j.Logger;
1321
307e76ccd0d6 generalize separate logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 775
diff changeset
4 import org.apache.log4j.LogManager;
307e76ccd0d6 generalize separate logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 775
diff changeset
5 import org.apache.log4j.Hierarchy;
307e76ccd0d6 generalize separate logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 775
diff changeset
6 import org.apache.log4j.Level;
307e76ccd0d6 generalize separate logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 775
diff changeset
7 import org.apache.log4j.spi.LoggerRepository;
307e76ccd0d6 generalize separate logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 775
diff changeset
8 import org.apache.log4j.spi.RootLogger;
1332
11b7e11f9ed5 cleaner logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 1321
diff changeset
9 import org.apache.log4j.spi.RepositorySelector;
376
0a75ed73bccc partly revert rev 538c19ad1272 (logging)
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
10 import luan.LuanState;
0a75ed73bccc partly revert rev 538c19ad1272 (logging)
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
11 import luan.LuanException;
0a75ed73bccc partly revert rev 538c19ad1272 (logging)
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
12 import luan.LuanTable;
0a75ed73bccc partly revert rev 538c19ad1272 (logging)
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
13
0a75ed73bccc partly revert rev 538c19ad1272 (logging)
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
14
1332
11b7e11f9ed5 cleaner logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 1321
diff changeset
15 public final class Log4j {
1321
307e76ccd0d6 generalize separate logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 775
diff changeset
16 private static String KEY = "Logger.Repository";
307e76ccd0d6 generalize separate logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 775
diff changeset
17
1332
11b7e11f9ed5 cleaner logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 1321
diff changeset
18 public static void newLoggerRepository(LuanState luan) throws LuanException {
11b7e11f9ed5 cleaner logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 1321
diff changeset
19 LoggerRepository lr = new Hierarchy(new RootLogger(Level.DEBUG));
1321
307e76ccd0d6 generalize separate logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 775
diff changeset
20 luan.registry().put(KEY,lr);
1332
11b7e11f9ed5 cleaner logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 1321
diff changeset
21 LuanTable module = (LuanTable)luan.require("luan:logging/Log4j.luan");
1321
307e76ccd0d6 generalize separate logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 775
diff changeset
22 module.call( "init_root" );
307e76ccd0d6 generalize separate logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 775
diff changeset
23 }
307e76ccd0d6 generalize separate logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 775
diff changeset
24
1332
11b7e11f9ed5 cleaner logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 1321
diff changeset
25 private static final LoggerRepository defaultLoggerRepository = LogManager.getLoggerRepository();
11b7e11f9ed5 cleaner logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 1321
diff changeset
26
11b7e11f9ed5 cleaner logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 1321
diff changeset
27 private static LoggerRepository getLoggerRepository(LuanState luan) {
11b7e11f9ed5 cleaner logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 1321
diff changeset
28 LoggerRepository lr = (LoggerRepository)luan.registry().get(KEY);
11b7e11f9ed5 cleaner logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 1321
diff changeset
29 return lr != null ? lr : defaultLoggerRepository;
11b7e11f9ed5 cleaner logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 1321
diff changeset
30 }
11b7e11f9ed5 cleaner logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 1321
diff changeset
31
11b7e11f9ed5 cleaner logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 1321
diff changeset
32 static {
11b7e11f9ed5 cleaner logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 1321
diff changeset
33 LogManager.setRepositorySelector( new RepositorySelector() {
11b7e11f9ed5 cleaner logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 1321
diff changeset
34 public LoggerRepository getLoggerRepository() {
11b7e11f9ed5 cleaner logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 1321
diff changeset
35 LuanState luan = LuanLogger.luan();
11b7e11f9ed5 cleaner logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 1321
diff changeset
36 return luan==null ? defaultLoggerRepository : Log4j.getLoggerRepository(luan);
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 }, new Object() );
1321
307e76ccd0d6 generalize separate logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 775
diff changeset
39 }
307e76ccd0d6 generalize separate logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 775
diff changeset
40
307e76ccd0d6 generalize separate logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 775
diff changeset
41 public static Logger getRootLogger(LuanState luan) {
307e76ccd0d6 generalize separate logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 775
diff changeset
42 return getLoggerRepository(luan).getRootLogger();
307e76ccd0d6 generalize separate logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 775
diff changeset
43 }
307e76ccd0d6 generalize separate logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 775
diff changeset
44
307e76ccd0d6 generalize separate logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 775
diff changeset
45 public static Logger getLogger(LuanState luan,String name) {
307e76ccd0d6 generalize separate logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 775
diff changeset
46 return getLoggerRepository(luan).getLogger(name);
307e76ccd0d6 generalize separate logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 775
diff changeset
47 }
376
0a75ed73bccc partly revert rev 538c19ad1272 (logging)
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
48 }