aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Köhler <andreas.koehler@1und1.de>2010-10-12 14:41:21 +0200
committerBadlop <badlop@process-one.net>2010-10-15 13:15:42 +0200
commitd1c1902687a33950a8fadd7729cb71678bddc0a2 (patch)
tree0cf73de2e40b0cc21a898f161c976d22c84e2dea
parentSpeed up ejabberd_s2s:is_service/2, allow_host/2 (thanks to Andreas Köhler)(... (diff)
Use records for encoding static loglevel information.
-rw-r--r--src/ejabberd_loglevel.erl30
1 files changed, 18 insertions, 12 deletions
diff --git a/src/ejabberd_loglevel.erl b/src/ejabberd_loglevel.erl
index 276d77a68..4e98a5644 100644
--- a/src/ejabberd_loglevel.erl
+++ b/src/ejabberd_loglevel.erl
@@ -38,19 +38,25 @@
-define(LOGMODULE, "error_logger").
%% Error levels:
--define(LOG_LEVELS,[ {0, no_log, "No log"}
- ,{1, critical, "Critical"}
- ,{2, error, "Error"}
- ,{3, warning, "Warning"}
- ,{4, info, "Info"}
- ,{5, debug, "Debug"}
- ]).
+-record(loglevel, {ordinal,
+ name,
+ description}).
+
+-define(LOG_LEVELS,
+ [#loglevel{ordinal = 0, name = no_log, description = "No log"},
+ #loglevel{ordinal = 1, name = critical, description = "Critical"},
+ #loglevel{ordinal = 2, name = error, description = "Error"},
+ #loglevel{ordinal = 3, name = warning, description = "Warning"},
+ #loglevel{ordinal = 4, name = info, description = "Info"},
+ #loglevel{ordinal = 5, name = debug, description = "Debug"}]).
get() ->
Level = ejabberd_logger:get(),
- case lists:keysearch(Level, 1, ?LOG_LEVELS) of
- {value, Result} -> Result;
- _ -> erlang:error({no_such_loglevel, Level})
+ case lists:keysearch(Level, #loglevel.ordinal, ?LOG_LEVELS) of
+ {value, Result = #loglevel{}} ->
+ {Result#loglevel.ordinal, Result#loglevel.name, Result#loglevel.description};
+ _ ->
+ erlang:error({no_such_loglevel, Level})
end.
@@ -67,8 +73,8 @@ set(_) ->
exit("Loglevel must be an integer").
level_to_integer(Level) ->
- case lists:keysearch(Level, 2, ?LOG_LEVELS) of
- {value, {Int, Level, _Desc}} -> Int;
+ case lists:keysearch(Level, #loglevel.name, ?LOG_LEVELS) of
+ {value, #loglevel{ordinal = Int}} -> Int;
_ -> erlang:error({no_such_loglevel, Level})
end.