From 52cde37cdbebf309eca2999f873a236e9e83b942 Mon Sep 17 00:00:00 2001 From: Matthew Wild Date: Wed, 14 Jul 2010 01:23:14 +0100 Subject: util.logger: Add reset() method to clear all sinks --- util/logger.lua | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/util/logger.lua b/util/logger.lua index fb0bc37b..22b7e41b 100644 --- a/util/logger.lua +++ b/util/logger.lua @@ -103,6 +103,21 @@ function setwriter(f) return ok, ret; end +function reset() + for k in pairs(name_sinks) do name_sinks[k] = nil; end + for level, handler_list in pairs(level_sinks) do + -- Clear all handlers for this level + for i = 1, #handler_list do + handler_list[i] = nil; + end + end + for k in pairs(name_patterns) do name_patterns[k] = nil; end + + for _, modify_hook in pairs(modify_hooks) do + modify_hook(); + end +end + function add_level_sink(level, sink_function) if not level_sinks[level] then level_sinks[level] = { sink_function }; -- cgit v1.2.3