Mercurial Hosting > luan
view src/luan/modules/logging/Logging.luan @ 1000:32d4b569567c
simplify handle()
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Wed, 19 Oct 2016 04:22:51 -0600 |
parents | 1a68fc55a80c |
children | bae2d0c2576c |
line wrap: on
line source
java() local Logger = require "java:org.apache.log4j.Logger" local EnhancedPatternLayout = require "java:org.apache.log4j.EnhancedPatternLayout" local ConsoleAppender = require "java:org.apache.log4j.ConsoleAppender" local Level = require "java:org.apache.log4j.Level" local RollingFileAppender = require "java:org.apache.log4j.RollingFileAppender" local LuanLogger = require "java:luan.modules.logging.LuanLogger" local M = {} M.layout = "%d %-5p %c - %m%n" M.level = "INFO" M.console = "System.err" -- or "System.out" or set to nil for no console M.file = nil -- set to file name if you want logging to a file M.max_file_size = nil -- by default is "10MB" M.log4j_root_logger = Logger.getRootLogger() local function to_level(level) return level and Level.toLevel(level) end function M.log_to_file(file,logger_name) -- logger_name is optional, defaults to root logger local appender = RollingFileAppender.new(M.ptn_layout, file) appender.setMaxFileSize(M.max_file_size) local logger = logger_name and Logger.getLogger(logger_name) or M.log4j_root_logger logger.addAppender(appender) return appender end function M.init() M.log4j_root_logger.removeAllAppenders() M.log4j_root_logger.setLevel( to_level(M.level) ) M.ptn_layout = EnhancedPatternLayout.new(M.layout) if M.console ~= nil then M.console_appender = ConsoleAppender.new(M.ptn_layout,M.console) M.log4j_root_logger.addAppender(M.console_appender) else M.console_appender = nil end if M.file ~= nil then M.file_appender = M.log_to_file(M.file) else M.file_appender = nil end end local function to_luan_logger(log4j_logger) local tbl = {} local luanLogger = LuanLogger.new(log4j_logger) tbl.error = luanLogger.error tbl.warn = luanLogger.warn tbl.info = luanLogger.info tbl.debug = luanLogger.debug 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 M.logger(name) return to_luan_logger( Logger.getLogger(name) ) end function M.root_logger() return to_luan_logger( Logger.getRootLogger() ) end return M