Mercurial Hosting > hghosting
comparison serve.luan @ 0:dfc36e7ed22c
init
author | Vadim Filimonov <fffilimonov@yandex.ru> |
---|---|
date | Thu, 12 May 2022 13:51:59 +0400 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:dfc36e7ed22c |
---|---|
1 local dir = "src" | |
2 local port = 8080 | |
3 | |
4 | |
5 require "java" | |
6 local Luan = require "luan:Luan.luan" | |
7 local error = Luan.error | |
8 local ipairs = Luan.ipairs or error() | |
9 | |
10 | |
11 local log_to_console = false | |
12 for _, arg in ipairs{...} do | |
13 if arg == "console" then | |
14 log_to_console = true | |
15 end | |
16 end | |
17 if not log_to_console then | |
18 local FileWriter = require "java:java.io.FileWriter" | |
19 local LuanLogger = require "java:luan.modules.logging.LuanLogger" | |
20 local Layouts = require "java:goodjava.logger.Layouts" | |
21 local DateLayout = require "java:goodjava.logger.DateLayout" | |
22 local ListLayout = require "java:goodjava.logger.ListLayout" | |
23 local Level = require "java:goodjava.logger.Level" | |
24 local WriterAppender = require "java:goodjava.logger.WriterAppender" | |
25 local LevelAppender = require "java:goodjava.logger.LevelAppender" | |
26 local ListAppender = require "java:goodjava.logger.ListAppender" | |
27 | |
28 local layout = ListLayout.new(DateLayout.new("yyyy-MM-dd HH:mm:ss,SSS")," ",Layouts.LEVEL_PADDED," ",Layouts.LOGGER," - ",Layouts.MESSAGE,"\n",Layouts.THROWABLE) | |
29 | |
30 local function new_appender(file,level) | |
31 local writer = FileWriter.new(file,true) | |
32 local appender = WriterAppender.new(layout,writer) | |
33 appender = LevelAppender.new(appender,level) | |
34 return appender | |
35 end | |
36 | |
37 local err = new_appender("logs/luan_error.log",Level.ERROR) | |
38 local warn = new_appender("logs/luan_warn.log",Level.WARN) | |
39 local info = new_appender("logs/luan_info.log",Level.INFO) | |
40 local appender = ListAppender.new(err,warn,info) | |
41 LuanLogger.configure(appender) | |
42 end | |
43 | |
44 | |
45 local Server = require "luan:http/Server.luan" | |
46 local FileHandler = require "java:goodjava.webserver.handlers.FileHandler" | |
47 local LuanHandler = require "java:luan.modules.http.LuanHandler" | |
48 local ListHandler = require "java:goodjava.webserver.handlers.ListHandler" | |
49 local ContentTypeHandler = require "java:goodjava.webserver.handlers.ContentTypeHandler" | |
50 local IndexHandler = require "java:goodjava.webserver.handlers.IndexHandler" | |
51 local DirHandler = require "java:goodjava.webserver.handlers.DirHandler" | |
52 local NotFound = require "java:luan.modules.http.NotFound" | |
53 local HeadersHandler = require "java:goodjava.webserver.handlers.HeadersHandler" | |
54 local SafeHandler = require "java:goodjava.webserver.handlers.SafeHandler" | |
55 local JavaServer = require "java:goodjava.webserver.Server" | |
56 | |
57 Server.init_dir(dir) | |
58 local file_handler = FileHandler.new(dir) | |
59 local luan_handler = LuanHandler.new() | |
60 local handler = ListHandler.new( luan_handler, file_handler ) | |
61 handler = ContentTypeHandler.new(handler) | |
62 handler = IndexHandler.new(handler) | |
63 local dir_handler = DirHandler.new(file_handler) | |
64 local not_found_hander = NotFound.new(luan_handler) | |
65 not_found_hander = ContentTypeHandler.new(not_found_hander) | |
66 handler = ListHandler.new( handler, dir_handler, not_found_hander ) | |
67 handler = HeadersHandler.new(handler) | |
68 handler = SafeHandler.new(handler) | |
69 local server = JavaServer.new(port,handler) | |
70 Server.start(server) |