Mercurial Hosting > luan
view src/luan/modules/logging/Logging.luan @ 1170:3a0f58d09ee7
add use_jetty
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Sun, 11 Feb 2018 02:34:35 -0700 |
parents | 14ffce5bb894 |
children | 3995cbe5b00a |
line wrap: on
line source
local Luan = require "luan:Luan.luan" local error = Luan.error local pairs = Luan.pairs or error() 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 Logging = {} Logging.layout = "%d %-5p %c - %m%n" Logging.appenders = { ["System.err"] = "INFO" } Logging.max_file_size = nil -- by default is "10MB" Logging.log4j_root_logger = Logger.getRootLogger() local function to_level(level) return level and Level.toLevel(level) end function Logging.log_to_file(file,logger_name) -- logger_name is optional, defaults to root logger local appender = RollingFileAppender.new(Logging.ptn_layout, file) appender.setMaxFileSize(Logging.max_file_size) local logger = logger_name and Logger.getLogger(logger_name) or Logging.log4j_root_logger logger.addAppender(appender) return appender end function Logging.init() Logging.ptn_layout = EnhancedPatternLayout.new(Logging.layout) Logging.log4j_root_logger.removeAllAppenders() local root_level = Level.FATAL for _, level in pairs(Logging.appenders) do level = to_level(level) if not level.isGreaterOrEqual(root_level) then root_level = level end end Logging.log4j_root_logger.setLevel(root_level) for name, level in pairs(Logging.appenders) do level = to_level(level) local appender if name == "System.err" or name == "System.out" then appender = ConsoleAppender.new(Logging.ptn_layout,name) Logging.log4j_root_logger.addAppender(appender) else appender = Logging.log_to_file(name) end if level ~= root_level then appender.setThreshold(level) end 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 Logging.logger(name) return to_luan_logger( Logger.getLogger(name) ) end function Logging.root_logger() return to_luan_logger( Logger.getRootLogger() ) end return Logging