logger_filters
Module
logger_filters
Module Summary
Filters to use with Logger.
Since
Module logger_filters was introduced in OTP 21.0.
Description
All functions exported from this module can be used as primary or handler filters. See logger:add_primary_filter/2
and logger:add_handler_filter/3
for more information about how filters are added.
Filters are removed with logger:remove_primary_filter/1
and logger:remove_handler_filter/2
.
Exports
domain(LogEvent, Extra) -> logger:filter_return() | OTP 21.0 |
Types
This filter provides a way of filtering log events based on a domain
field in Metadata
. This field is optional, and the purpose of using it is to group log events from, for example, a specific functional area. This allows filtering or other specialized treatment in a Logger handler.
A domain field must be a list of atoms, creating smaller and more specialized domains as the list grows longer. The greatest domain is []
, which comprises all possible domains.
For example, consider the following domains:
D1 = [otp] D2 = [otp, sasl]
D1
is the greatest of the two, and is said to be a super-domain of D2
. D2
is a sub-domain D1
. Both D1
and D2
are sub-domains of []
.
The above domains are used for logs originating from Erlang/OTP. D1 specifies that the log event comes from Erlang/OTP in general, and D2 indicates that the log event is a so called SASL report
.
The Extra
parameter to the domain/2
function is specified when adding the filter via logger:add_primary_filter/2
or logger:add_handler_filter/3
.
The filter compares the value of the domain
field in the log event's metadata (Domain
) against MatchDomain
. The filter matches if the value of Compare
is:
sub
-
and
Domain
is equal to or a sub-domain ofMatchDomain
, that is, ifMatchDomain
is a prefix ofDomain
. super
-
and
Domain
is equal to or a super-domain ofMatchDomain
, that is, ifDomain
is a prefix ofMatchDomain
. equal
-
and
Domain
is equal toMatchDomain
. not_equal
-
and
Domain
differs fromMatchDomain
, or if there is no domain field in metadata. undefined
-
and there is no domain field in metadata. In this case
MatchDomain
must be set to[]
.
If the filter matches and Action
is log
, the log event is allowed. If the filter matches and Action
is stop
, the log event is stopped.
If the filter does not match, it returns ignore
, meaning that other filters, or the value of the configuration parameter filter_default
, decide if the event is allowed or not.
Log events that do not contain any domain field, match only when Compare
is equal to undefined
or not_equal
.
Example: stop all events with domain [otp, sasl | _]
logger:set_handler_config(h1, filter_default, log). % this is the default Filter = {fun logger_filters:domain/2, {stop, sub, [otp, sasl]}}. logger:add_handler_filter(h1, no_sasl, Filter). ok
level(LogEvent, Extra) -> logger:filter_return() | OTP 21.0 |
Types
This filter provides a way of filtering log events based on the log level. It matches log events by comparing the log level with a specified MatchLevel
The Extra
parameter is specified when adding the filter via logger:add_primary_filter/2
or logger:add_handler_filter/3
.
The filter compares the value of the event's log level (Level
) to MatchLevel
by calling logger:compare_levels(Level, MatchLevel)
. The filter matches if the value of Operator
is:
neq
and the compare function returns
lt
orgt
.eq
and the compare function returns
eq
.lt
and the compare function returns
lt
.gt
and the compare function returns
gt
.lteq
and the compare function returns
lt
oreq
.gteq
and the compare function returns
gt
oreq
.
If the filter matches and Action
is log
, the log event is allowed. If the filter matches and Action
is stop
, the log event is stopped.
If the filter does not match, it returns ignore
, meaning that other filters, or the value of the configuration parameter filter_default
, will decide if the event is allowed or not.
Example: only allow debug level log events
logger:set_handler_config(h1, filter_default, stop). Filter = {fun logger_filters:level/2, {log, eq, debug}}. logger:add_handler_filter(h1, debug_only, Filter). ok
progress(LogEvent, Extra) -> logger:filter_return() | OTP 21.0 |
Types
This filter matches all progress reports from supervisor
and application_controller
.
If Extra
is log
, the progress reports are allowed. If Extra
is stop
, the progress reports are stopped.
The filter returns ignore
for all other log events.
remote_gl(LogEvent, Extra) -> logger:filter_return() | OTP 21.0 |
Types
This filter matches all events originating from a process that has its group leader on a remote node.
If Extra
is log
, the matching events are allowed. If Extra
is stop
, the matching events are stopped.
The filter returns ignore
for all other log events.
See Also
© 2010–2020 Ericsson AB
Licensed under the Apache License, Version 2.0.