diff options
author | Andreas Köhler <andreas.koehler@1und1.de> | 2010-10-13 14:04:48 +0200 |
---|---|---|
committer | Badlop <badlop@process-one.net> | 2010-10-15 13:15:50 +0200 |
commit | 801ee586b7a0e2e5456d919979bf6a20970bf6cd (patch) | |
tree | 0509c5195f51e773a3acc32a70883f76e6084b50 /src | |
parent | Document new loglevel configuration form. (diff) |
Add set_custom/2, clear_custom/0 and clear_custom/1 to ejabberd_loglevel
Diffstat (limited to 'src')
-rw-r--r-- | src/ejabberd_loglevel.erl | 30 |
1 files changed, 29 insertions, 1 deletions
diff --git a/src/ejabberd_loglevel.erl b/src/ejabberd_loglevel.erl index 8087dec2a..8f55ed09e 100644 --- a/src/ejabberd_loglevel.erl +++ b/src/ejabberd_loglevel.erl @@ -31,7 +31,11 @@ -module(ejabberd_loglevel). -author('mickael.remond@process-one.net'). --export([set/1, get/0]). +-export([set/1, + get/0, + set_custom/2, + clear_custom/0, + clear_custom/1]). -include("ejabberd.hrl"). @@ -82,6 +86,30 @@ set({DefaultLevel, CustomLevels}) when is_list(CustomLevels) -> set(_) -> exit("Invalid loglevel format"). +set_custom(Module, Level) -> + {DefaultLevel, CustomLevels} = ejabberd_logger:get(), + case lists:keysearch(Module, 1, CustomLevels) of + {value, {Module, Level}} -> + ok; + {value, _} -> + set({DefaultLevel, lists:keyreplace(Module, 1, CustomLevels, {Module, Level})}); + _ -> + set({DefaultLevel, [{Module, Level} | CustomLevels]}) + end. + +clear_custom() -> + {DefaultLevel, CustomLevels} = ejabberd_logger:get(), + set({DefaultLevel, []}). + +clear_custom(Module) -> + {DefaultLevel, CustomLevels} = ejabberd_logger:get(), + case lists:keysearch(Module, 1, CustomLevels) of + {value, _} -> + set({DefaultLevel, lists:keydelete(Module, 1, CustomLevels)}); + _ -> + ok + end. + level_to_integer(Level) when is_integer(Level) -> Level; level_to_integer({Module, Level}) -> |