diff options
author | Andreas Köhler <andreas.koehler@1und1.de> | 2010-10-12 14:41:21 +0200 |
---|---|---|
committer | Badlop <badlop@process-one.net> | 2010-10-15 13:15:42 +0200 |
commit | d1c1902687a33950a8fadd7729cb71678bddc0a2 (patch) | |
tree | 0cf73de2e40b0cc21a898f161c976d22c84e2dea | |
parent | Speed 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.erl | 30 |
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. |