comparison logging/src/luan/modules/logging/Logging.luan @ 503:92c3d22745b8

make _ENV optional
author Franklin Schmidt <fschmidt@gmail.com>
date Wed, 20 May 2015 23:24:46 -0600
parents 0a75ed73bccc
children 9bf9ad733827
comparison
equal deleted inserted replaced
502:d3183a330ff5 503:92c3d22745b8
4 local ConsoleAppender = require "java:org.apache.log4j.ConsoleAppender" 4 local ConsoleAppender = require "java:org.apache.log4j.ConsoleAppender"
5 local Level = require "java:org.apache.log4j.Level" 5 local Level = require "java:org.apache.log4j.Level"
6 local RollingFileAppender = require "java:org.apache.log4j.RollingFileAppender" 6 local RollingFileAppender = require "java:org.apache.log4j.RollingFileAppender"
7 local LuanLogger = require "java:luan.modules.logging.LuanLogger" 7 local LuanLogger = require "java:luan.modules.logging.LuanLogger"
8 8
9 local M = {}
9 10
10 layout = "%d %-5p %c - %m%n" 11 M.layout = "%d %-5p %c - %m%n"
11 12
12 level = "INFO" 13 M.level = "INFO"
13 14
14 console = "System.err" -- or "System.out" or set to nil for no console 15 M.console = "System.err" -- or "System.out" or set to nil for no console
15 16
16 file = nil -- set to file name if you want logging to a file 17 M.file = nil -- set to file name if you want logging to a file
17 18
18 max_file_size = nil -- by default is "10MB" 19 M.max_file_size = nil -- by default is "10MB"
19 20
20 21
21 log4j_root_logger = Logger.getRootLogger() 22 M.log4j_root_logger = Logger.getRootLogger()
22 23
23 local function to_level(level) 24 local function to_level(level)
24 return level and Level.toLevel(level) 25 return level and Level.toLevel(level)
25 end 26 end
26 27
27 function log_to_file(file,logger_name) -- logger_name is optional, defaults to root logger 28 function M.log_to_file(file,logger_name) -- logger_name is optional, defaults to root logger
28 local appender = RollingFileAppender.new(ptn_layout, file) 29 local appender = RollingFileAppender.new(M.ptn_layout, file)
29 appender.setMaxFileSize(max_file_size) 30 appender.setMaxFileSize(M.max_file_size)
30 local logger = logger_name and Logger.getLogger(logger_name) or log4j_root_logger 31 local logger = logger_name and Logger.getLogger(logger_name) or M.log4j_root_logger
31 logger.addAppender(appender) 32 logger.addAppender(appender)
32 return appender 33 return appender
33 end 34 end
34 35
35 function init() 36 function M.init()
36 log4j_root_logger.removeAllAppenders() 37 M.log4j_root_logger.removeAllAppenders()
37 log4j_root_logger.setLevel( to_level(level) ) 38 M.log4j_root_logger.setLevel( to_level(M.level) )
38 ptn_layout = EnhancedPatternLayout.new(layout) 39 M.ptn_layout = EnhancedPatternLayout.new(M.layout)
39 40
40 if console ~= nil then 41 if M.console ~= nil then
41 console_appender = ConsoleAppender.new(ptn_layout,console) 42 M.console_appender = ConsoleAppender.new(M.ptn_layout,M.console)
42 log4j_root_logger.addAppender(console_appender) 43 M.log4j_root_logger.addAppender(M.console_appender)
43 else 44 else
44 console_appender = nil 45 M.console_appender = nil
45 end 46 end
46 47
47 if file ~= nil then 48 if M.file ~= nil then
48 file_appender = log_to_file(file) 49 M.file_appender = M.log_to_file(M.file)
49 else 50 else
50 file_appender = nil 51 M.file_appender = nil
51 end 52 end
52 end 53 end
53 54
54 init() 55 M.init()
55 56
56 57
57 local function to_luan_logger(log4j_logger) 58 local function to_luan_logger(log4j_logger)
58 local tbl = {} 59 local tbl = {}
59 60
78 end 79 end
79 80
80 return tbl 81 return tbl
81 end 82 end
82 83
83 function logger(name) 84 function M.logger(name)
84 return to_luan_logger( Logger.getLogger(name) ) 85 return to_luan_logger( Logger.getLogger(name) )
85 end 86 end
86 87
87 function root_logger() 88 function M.root_logger()
88 return to_luan_logger( Logger.getRootLogger() ) 89 return to_luan_logger( Logger.getRootLogger() )
89 end 90 end
91
92 return M