Mercurial Hosting > luan
view logging/src/luan/modules/logging/Logging.luan @ 272:eb27e765affb
rename Io.protocols to Io.schemes and "class:" to "java:"
git-svn-id: https://luan-java.googlecode.com/svn/trunk@273 21e917c8-12df-6dd8-5cb6-c86387c605b9
author | fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9> |
---|---|
date | Fri, 31 Oct 2014 04:50:24 +0000 |
parents | 9e0d4452e649 |
children | 899253043270 |
line wrap: on
line source
import "luan:Java" import "java:org.apache.log4j.Logger" import "java:org.apache.log4j.EnhancedPatternLayout" import "java:org.apache.log4j.ConsoleAppender" import "java:org.apache.log4j.Level" import "java:org.apache.log4j.RollingFileAppender" import "java:luan.modules.logging.LuanLogger" layout = "%d %-5p %c - %m%n" level = "INFO" console = "System.err" -- or "System.out" or set to nil for no console file = nil -- set to file name if you want logging to a file max_file_size = nil -- by default is "10MB" log4j_root_logger = Logger.getRootLogger() local function to_level(level) return level and Level.toLevel(level) end function log_to_file(file,logger_name) -- logger_name is optional, defaults to root logger local appender = RollingFileAppender.new(ptn_layout, file) appender.setMaxFileSize(max_file_size) local logger = logger_name and Logger.getLogger(logger_name) or log4j_root_logger logger.addAppender(appender) return appender end function init() log4j_root_logger.removeAllAppenders() log4j_root_logger.setLevel( to_level(level) ) ptn_layout = EnhancedPatternLayout.new(layout) if console ~= nil then console_appender = ConsoleAppender.new(ptn_layout,console) log4j_root_logger.addAppender(console_appender) else console_appender = nil end if file ~= nil then file_appender = log_to_file(file) else file_appender = nil end end init() local function to_luan_logger(log4j_logger) local tbl = LuanLogger.new(log4j_logger).table() function tbl.get_level() local level = log4j_logger.getLevel() return level and level.toString() end function tbl.get_effective_level() local level = log4j_logger.getEffectiveLevel() return level and level.toString() end function tbl.set_level(level) log4j_logger.setLevel( to_level(level) ) end return tbl end function logger(name) return to_luan_logger( Logger.getLogger(name) ) end function root_logger() return to_luan_logger( Logger.getRootLogger() ) end