init.lua

changeset 44
37396504de5f
parent 42
6006e6bb1c28
child 45
50a2e4fb0a16
equal deleted inserted replaced
43:a33036b7e5ab 44:37396504de5f
12 stream.__index = stream; 12 stream.__index = stream;
13 stream_mt = stream; 13 stream_mt = stream;
14 14
15 verse.plugins = {}; 15 verse.plugins = {};
16 16
17 function verse.new(base) 17 function verse.new(logger, base)
18 local t = base or {}; 18 local t = setmetatable(base or {}, stream);
19 t.id = tostring(t):match("%x*$"); 19 t.id = tostring(t):match("%x*$");
20 t.logger = logger.init(t.id); 20 t:set_logger(logger, true);
21 t.events = events.new(); 21 t.events = events.new();
22 return setmetatable(t, stream); 22 return t;
23 end 23 end
24 24
25 verse.add_task = require "util.timer".add_task; 25 verse.add_task = require "util.timer".add_task;
26 26
27 function verse.loop() 27 function verse.loop()
28 return server.loop(); 28 return server.loop();
29 end
30
31 verse.logger = logger.init;
32
33 function verse.set_logger(logger)
34 server.setlogger(logger);
29 end 35 end
30 36
31 function stream:connect(connect_host, connect_port) 37 function stream:connect(connect_host, connect_port)
32 connect_host = connect_host or "localhost"; 38 connect_host = connect_host or "localhost";
33 connect_port = tonumber(connect_port) or 5222; 39 connect_port = tonumber(connect_port) or 5222;
53 self.send = function (_, data) return w(conn, t(data)); end 59 self.send = function (_, data) return w(conn, t(data)); end
54 end 60 end
55 61
56 -- Logging functions 62 -- Logging functions
57 function stream:debug(...) 63 function stream:debug(...)
58 return self.logger("debug", ...); 64 if self.logger and self.log.debug then
65 return self.logger("debug", ...);
66 end
59 end 67 end
60 68
61 function stream:warn(...) 69 function stream:warn(...)
62 return self.logger("warn", ...); 70 if self.logger and self.log.warn then
71 return self.logger("warn", ...);
72 end
63 end 73 end
64 74
65 function stream:error(...) 75 function stream:error(...)
66 return self.logger("error", ...); 76 if self.logger and self.log.error then
77 return self.logger("error", ...);
78 end
79 end
80
81 function stream:set_logger(logger, levels)
82 local old_logger = self.logger;
83 if logger then
84 self.logger = logger;
85 end
86 if levels then
87 if levels == true then
88 levels = { "debug", "info", "warn", "error" };
89 end
90 self.log = {};
91 for _, level in ipairs(levels) do
92 self.log[level] = true;
93 end
94 end
95 return old_logger;
67 end 96 end
68 97
69 -- Event handling 98 -- Event handling
70 function stream:event(name, ...) 99 function stream:event(name, ...)
71 self:debug("Firing event: "..tostring(name)); 100 self:debug("Firing event: "..tostring(name));

mercurial