Mercurial Hosting > luan
view logging/src/luan/modules/logging/Logging.luan @ 328:71e4f4ce74a3
load "site:/init" on webserver initialization
git-svn-id: https://luan-java.googlecode.com/svn/trunk@329 21e917c8-12df-6dd8-5cb6-c86387c605b9
author | fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9> |
---|---|
date | Thu, 19 Mar 2015 07:18:49 +0000 |
parents | 7f7708e8fdd4 |
children | 538c19ad1272 |
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" 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