Mercurial Hosting > luan
comparison src/luan/modules/logging/Logging.luan @ 775:1a68fc55a80c
simplify dir structure
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Fri, 26 Aug 2016 14:36:40 -0600 |
parents | logging/src/luan/modules/logging/Logging.luan@9bf9ad733827 |
children | bae2d0c2576c |
comparison
equal
deleted
inserted
replaced
774:3e30cf310e56 | 775:1a68fc55a80c |
---|---|
1 java() | |
2 local Logger = require "java:org.apache.log4j.Logger" | |
3 local EnhancedPatternLayout = require "java:org.apache.log4j.EnhancedPatternLayout" | |
4 local ConsoleAppender = require "java:org.apache.log4j.ConsoleAppender" | |
5 local Level = require "java:org.apache.log4j.Level" | |
6 local RollingFileAppender = require "java:org.apache.log4j.RollingFileAppender" | |
7 local LuanLogger = require "java:luan.modules.logging.LuanLogger" | |
8 | |
9 local M = {} | |
10 | |
11 M.layout = "%d %-5p %c - %m%n" | |
12 | |
13 M.level = "INFO" | |
14 | |
15 M.console = "System.err" -- or "System.out" or set to nil for no console | |
16 | |
17 M.file = nil -- set to file name if you want logging to a file | |
18 | |
19 M.max_file_size = nil -- by default is "10MB" | |
20 | |
21 | |
22 M.log4j_root_logger = Logger.getRootLogger() | |
23 | |
24 local function to_level(level) | |
25 return level and Level.toLevel(level) | |
26 end | |
27 | |
28 function M.log_to_file(file,logger_name) -- logger_name is optional, defaults to root logger | |
29 local appender = RollingFileAppender.new(M.ptn_layout, file) | |
30 appender.setMaxFileSize(M.max_file_size) | |
31 local logger = logger_name and Logger.getLogger(logger_name) or M.log4j_root_logger | |
32 logger.addAppender(appender) | |
33 return appender | |
34 end | |
35 | |
36 function M.init() | |
37 M.log4j_root_logger.removeAllAppenders() | |
38 M.log4j_root_logger.setLevel( to_level(M.level) ) | |
39 M.ptn_layout = EnhancedPatternLayout.new(M.layout) | |
40 | |
41 if M.console ~= nil then | |
42 M.console_appender = ConsoleAppender.new(M.ptn_layout,M.console) | |
43 M.log4j_root_logger.addAppender(M.console_appender) | |
44 else | |
45 M.console_appender = nil | |
46 end | |
47 | |
48 if M.file ~= nil then | |
49 M.file_appender = M.log_to_file(M.file) | |
50 else | |
51 M.file_appender = nil | |
52 end | |
53 end | |
54 | |
55 | |
56 local function to_luan_logger(log4j_logger) | |
57 local tbl = {} | |
58 | |
59 local luanLogger = LuanLogger.new(log4j_logger) | |
60 tbl.error = luanLogger.error | |
61 tbl.warn = luanLogger.warn | |
62 tbl.info = luanLogger.info | |
63 tbl.debug = luanLogger.debug | |
64 | |
65 function tbl.get_level() | |
66 local level = log4j_logger.getLevel() | |
67 return level and level.toString() | |
68 end | |
69 | |
70 function tbl.get_effective_level() | |
71 local level = log4j_logger.getEffectiveLevel() | |
72 return level and level.toString() | |
73 end | |
74 | |
75 function tbl.set_level(level) | |
76 log4j_logger.setLevel( to_level(level) ) | |
77 end | |
78 | |
79 return tbl | |
80 end | |
81 | |
82 function M.logger(name) | |
83 return to_luan_logger( Logger.getLogger(name) ) | |
84 end | |
85 | |
86 function M.root_logger() | |
87 return to_luan_logger( Logger.getRootLogger() ) | |
88 end | |
89 | |
90 return M |