diff options
author | Siri Hansen <[email protected]> | 2018-06-08 14:23:13 +0200 |
---|---|---|
committer | Siri Hansen <[email protected]> | 2018-06-08 14:40:13 +0200 |
commit | 0a235e6b1f008ade99b18438e671b93ff82cc268 (patch) | |
tree | 68bb3cd638028520f574849488151712a1025e3c /lib/kernel/src/logger.erl | |
parent | 577d903af9eb5b028611a957b8f07b06fbbd741e (diff) | |
download | otp-0a235e6b1f008ade99b18438e671b93ff82cc268.tar.gz otp-0a235e6b1f008ade99b18438e671b93ff82cc268.tar.bz2 otp-0a235e6b1f008ade99b18438e671b93ff82cc268.zip |
[logger] Update interface for setting/unsetting module level
* Level can now be set/unset for multiple modules in one call.
* Added functions get_module_level/0 and get_module_level/1.
Diffstat (limited to 'lib/kernel/src/logger.erl')
-rw-r--r-- | lib/kernel/src/logger.erl | 44 |
1 files changed, 35 insertions, 9 deletions
diff --git a/lib/kernel/src/logger.erl b/lib/kernel/src/logger.erl index 907e2035f1..395ec448ff 100644 --- a/lib/kernel/src/logger.erl +++ b/lib/kernel/src/logger.erl @@ -37,7 +37,9 @@ -export([add_handler/3, remove_handler/1, add_logger_filter/2, add_handler_filter/3, remove_logger_filter/1, remove_handler_filter/2, - set_module_level/2, unset_module_level/1, + set_module_level/2, + unset_module_level/1, unset_module_level/0, + get_module_level/0, get_module_level/1, set_logger_config/1, set_logger_config/2, set_handler_config/2, set_handler_config/3, update_logger_config/1, update_handler_config/2, @@ -408,16 +410,40 @@ update_formatter_config(HandlerId,FormatterConfig) -> update_formatter_config(HandlerId,Key,Value) -> logger_server:update_formatter_config(HandlerId,#{Key=>Value}). --spec set_module_level(Module,Level) -> ok | {error,term()} when +-spec set_module_level(Modules,Level) -> ok | {error,term()} when + Modules :: [module()] | module(), + Level :: level(). +set_module_level(Module,Level) when is_atom(Module) -> + set_module_level([Module],Level); +set_module_level(Modules,Level) -> + logger_server:set_module_level(Modules,Level). + +-spec unset_module_level(Modules) -> ok when + Modules :: [module()] | module(). +unset_module_level(Module) when is_atom(Module) -> + unset_module_level([Module]); +unset_module_level(Modules) -> + logger_server:unset_module_level(Modules). + +-spec unset_module_level() -> ok. +unset_module_level() -> + logger_server:unset_module_level(). + +-spec get_module_level(Modules) -> [{Module,Level}] when + Modules :: [Module] | Module, Module :: module(), Level :: level(). -set_module_level(Module,Level) -> - logger_server:set_module_level(Module,Level). +get_module_level(Module) when is_atom(Module) -> + get_module_level([Module]); +get_module_level(Modules) when is_list(Modules) -> + [{M,L} || {M,L} <- get_module_level(), + lists:member(M,Modules)]. --spec unset_module_level(Module) -> ok | {error,term()} when - Module :: module(). -unset_module_level(Module) -> - logger_server:unset_module_level(Module). +-spec get_module_level() -> [{Module,Level}] when + Module :: module(), + Level :: level(). +get_module_level() -> + logger_config:get_module_level(?LOGGER_TABLE). %%%----------------------------------------------------------------- %%% Misc @@ -496,7 +522,7 @@ i(_Action = string) -> print_module_levels(Modules) ]; i(_Action = term) -> - {Logger, Handlers, Modules} = logger_config:get(tid()), + {Logger, Handlers, Modules} = logger_config:get(?LOGGER_TABLE), #{logger=>maps:remove(handlers,Logger), handlers=>lists:keysort(1,Handlers), module_levels=>lists:keysort(1,Modules)}. |