verse: Accept a file object as a log handler, and automatically call :write() on it with a formatted message

Sun, 12 Feb 2012 20:21:52 +0000

author
Matthew Wild <mwild1@gmail.com>
date
Sun, 12 Feb 2012 20:21:52 +0000
changeset 279
7a0aa3d055f4
parent 278
6f58f6f3986d
child 280
981c8867f1fb
child 282
52b971d9ebc3

verse: Accept a file object as a log handler, and automatically call :write() on it with a formatted message

init.lua file | annotate | diff | comparison | revisions
--- a/init.lua	Sun Feb 12 02:27:56 2012 +0100
+++ b/init.lua	Sun Feb 12 20:21:52 2012 +0000
@@ -57,10 +57,16 @@
 function verse.set_log_handler(log_handler, levels)
 	levels = levels or { "debug", "info", "warn", "error" };
 	logger.reset();
-	local function _log_handler(name, level, message, ...)
-		return log_handler(name, level, format(message, ...));
+	if io.type(log_handler) == "file" then
+		local f = log_handler;
+		function log_handler(name, level, message)
+			f:write(name, "\t", level, "\t", message, "\n");
+		end
 	end
 	if log_handler then
+		local function _log_handler(name, level, message, ...)
+			return log_handler(name, level, format(message, ...));
+		end
 		for i, level in ipairs(levels) do
 			logger.add_level_sink(level, _log_handler);
 		end

mercurial