aboutsummaryrefslogtreecommitdiffstats
path: root/lib/kernel/src/logger.erl
diff options
context:
space:
mode:
authorSiri Hansen <[email protected]>2018-06-08 14:23:13 +0200
committerSiri Hansen <[email protected]>2018-06-08 14:40:13 +0200
commit0a235e6b1f008ade99b18438e671b93ff82cc268 (patch)
tree68bb3cd638028520f574849488151712a1025e3c /lib/kernel/src/logger.erl
parent577d903af9eb5b028611a957b8f07b06fbbd741e (diff)
downloadotp-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.erl44
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)}.