aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAndreas Köhler <andreas.koehler@1und1.de>2010-10-13 14:04:48 +0200
committerBadlop <badlop@process-one.net>2010-10-15 13:15:50 +0200
commit801ee586b7a0e2e5456d919979bf6a20970bf6cd (patch)
tree0509c5195f51e773a3acc32a70883f76e6084b50 /src
parentDocument 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.erl30
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}) ->