comparison logging/src/luan/modules/logging/Logging.luan @ 205:3918f92de5fe

add logging component git-svn-id: https://luan-java.googlecode.com/svn/trunk@206 21e917c8-12df-6dd8-5cb6-c86387c605b9
author fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
date Mon, 07 Jul 2014 09:37:02 +0000
parents
children 5aafb5b9f70f
comparison
equal deleted inserted replaced
204:cee6581b6f56 205:3918f92de5fe
1 import "Java"
2 import "org.apache.log4j.Logger"
3 import "org.apache.log4j.EnhancedPatternLayout"
4 import "org.apache.log4j.ConsoleAppender"
5 import "org.apache.log4j.Level"
6 import "org.apache.log4j.RollingFileAppender"
7
8
9 layout = "%d %-5p %c - %m%n"
10
11 level = "INFO"
12
13 console = "System.err" -- or "System.out" or set to nil for no console
14
15 file = nil -- set to file name if you want logging to a file
16
17 max_file_size = "10MB"
18
19
20 log4j_root_logger = Logger.getRootLogger()
21
22 local function to_level(level)
23 return level and Level.toLevel(level)
24 end
25
26 function log_to_file(file)
27 local appender = RollingFileAppender.new(ptn_layout, file)
28 appender.setMaxFileSize(max_file_size)
29 print("getMaximumFileSize",appender.getMaximumFileSize())
30 log4j_root_logger.addAppender(appender)
31 return appender
32 end
33
34 function init()
35 log4j_root_logger.removeAllAppenders()
36 log4j_root_logger.setLevel( to_level(level) )
37 ptn_layout = EnhancedPatternLayout.new(layout)
38
39 if console ~= nil then
40 console_appender = ConsoleAppender.new(ptn_layout,console)
41 log4j_root_logger.addAppender(console_appender)
42 else
43 console_appender = nil
44 end
45
46 if file ~= nil then
47 file_appender = log_to_file(file)
48 else
49 file_appender = nil
50 end
51 end
52
53 init()
54
55
56 local function to_luan_logger(log4j_logger)
57 local tbl = {}
58
59 function tbl.error(obj)
60 log4j_logger.error( to_string(obj) )
61 end
62
63 function tbl.warn(obj)
64 log4j_logger.warn( to_string(obj) )
65 end
66
67 function tbl.info(obj)
68 log4j_logger.info( to_string(obj) )
69 end
70
71 function tbl.debug(obj)
72 log4j_logger.debug( to_string(obj) )
73 end
74
75 function tbl.get_level()
76 local level = log4j_logger.getLevel()
77 return level and level.toString()
78 end
79
80 function tbl.get_effective_level()
81 local level = log4j_logger.getEffectiveLevel()
82 return level and level.toString()
83 end
84
85 function tbl.set_level(level)
86 log4j_logger.setLevel( to_level(level) )
87 end
88
89 return tbl
90 end
91
92 function logger(name)
93 return to_luan_logger( Logger.getLogger(name) )
94 end
95
96 function root_logger()
97 return to_luan_logger( Logger.getRootLogger() )
98 end