view src/luan/host/Init.luan @ 1199:3995cbe5b00a

simplify logging
author Franklin Schmidt <fschmidt@gmail.com>
date Wed, 28 Feb 2018 23:21:03 -0700
parents 94cf2576a922
children 22228c12b6dd
line wrap: on
line source

local Luan = require "luan:Luan.luan"
local error = Luan.error
local String = require "luan:String.luan"
local gsub = String.gsub or error()
local Io = require "luan:Io.luan"
local Http = require "luan:http/Http.luan"
local Hosting = require "luan:host/Hosting.luan"
local Mail = require "luan:mail/Mail.luan"


local Init = {}

local dir, domain = ...

Init.password = Luan.do_file(dir.."/info.luan").password or error()

Http.dir = "file:"..dir.."/site"

function Io.schemes.site(path,loading)
	return Io.uri( Http.dir..path, loading )
end

Hosting.domain = domain
Io.password = Init.password


-- logging

java()
local Logger = require "java:org.apache.log4j.Logger"
local Level = require "java:org.apache.log4j.Level"
local EnhancedPatternLayout = require "java:org.apache.log4j.EnhancedPatternLayout"
local RollingFileAppender = require "java:org.apache.log4j.RollingFileAppender"

local root = gsub(domain,"\.",":")

local logger = Logger.getLogger(root)
local has_appenders = logger.getAllAppenders().hasMoreElements()
if not has_appenders then
	logger.setAdditivity(false)
	local layout = EnhancedPatternLayout.new("%d %-5p %c{-1} - %m%n")
	local log_dir = dir.."/site/private/local/logs/"

	local function add_appender(file,level)
		local appender = RollingFileAppender.new(layout, log_dir..file)
		appender.setMaxFileSize("1MB")
		logger.addAppender(appender)
		if level ~= logger.getEffectiveLevel() then
			appender.setThreshold(level)
		end
	end

	add_appender("error.log",Level.ERROR)
	add_appender("warn.log",Level.WARN)
	add_appender("info.log",Level.INFO)
end

local Logging = require "luan:logging/Logging.luan"

local old_logger = Logging.logger

function Logging.root_logger()
	return old_logger(root)
end

function Logging.logger(name)
	return old_logger( root .. "." .. name )
end

Init.logger_root = root.."."


-- mail  - fix later

Hosting.send_mail = Mail.Sender{
	host = "smtpcorp.com";
	username = "smtp@luanhost.com";  -- ?
	password = "luanhost";
	port = 2525;
}.send


return Init