domain(LogEvent, Extra) -> logger:filter_return()
OTP 21.0LogEvent = logger:log_event()
Extra = {Action, Compare, MatchDomain}
Action = log | stop
Compare = super | sub | equal | not_equal | undefined
MatchDomain = [atom()]
此过滤器提供了一种基于 Metadata
中的 domain
字段过滤日志事件的方法。该字段是可选的,使用它的目的是对来自特定函数区域的日志事件进行分组。这允许在记录器处理程序中进行过滤或其他专门处理。
域字段必须是原子列表,随着列表变长,创建更小、更专业的域。最大的域是 []
,它包含所有可能的域。
例如,考虑以下域:
D1 = [otp]
D2 = [otp, sasl]
D1
是两者中最大的一个,据说是 D2
的 super-domain 。 D2
是 sub-domain D1
。 D1
和D2
都是[]
的sub-domains 。
上述域用于源自 Erlang/OTP 的日志。 D1表示日志事件一般来自Erlang/OTP,D2表示日志事件是所谓的SASL报告.
Extra
参数到domain/2
通过添加过滤器时指定函数
logger:add_primary_filter/2
或者
logger:add_handler_filter/3
.
过滤器将日志事件元数据 (Domain
) 中的 domain
字段的值与 MatchDomain
进行比较。如果 Compare
的值为:则过滤器匹配:
sub
-
并且
Domain
等于或MatchDomain
的 sub-domain ,也就是说,如果MatchDomain
是Domain
的前缀。 super
-
并且
Domain
等于或MatchDomain
的 super-domain ,也就是说,如果Domain
是MatchDomain
的前缀。 equal
-
并且
Domain
等于MatchDomain
。 not_equal
-
并且
Domain
与MatchDomain
不同,或者元数据中没有域字段。 undefined
-
并且元数据中没有域字段。在这种情况下,
MatchDomain
必须设置为[]
。
如果过滤器匹配并且 Action
是 log
,则允许日志事件。如果过滤器匹配且 Action
为 stop
,则日志事件将停止。
如果过滤器不匹配,则返回 ignore
,这意味着其他过滤器或配置参数 filter_default
的值将决定是否允许该事件。
不包含任何域字段的日志事件仅当 Compare
等于 undefined
或 not_equal
时匹配。
示例:停止域为 [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
相关用法
- erlang domain(BinRel)用法及代码示例
- erlang delete用法及代码示例
- erlang droplast用法及代码示例
- erlang duplicate用法及代码示例
- erlang date用法及代码示例
- erlang dirname(Filename)用法及代码示例
- erlang date()用法及代码示例
- erlang decode_packet(Type, Bin, Options)用法及代码示例
- erlang delete_element(Index, Tuple1)用法及代码示例
- erlang demonitor(MonitorRef, OptionList)用法及代码示例
- erlang delete(Item, Q1)用法及代码示例
- erlang delete_r(Item, Q1)用法及代码示例
- erlang delete_with(Pred, Q1)用法及代码示例
- erlang delete_with_r(Pred, Q1)用法及代码示例
- erlang drop(Q1 :: queue(Item))用法及代码示例
- erlang drop_r(Q1 :: queue(Item))用法及代码示例
- erlang daeh(Q :: queue(Item))用法及代码示例
- erlang deflate(Z, Data, Flush)用法及代码示例
- erlang decode_unsigned(Subject, Endianness)用法及代码示例
- erlang decode_hex(Bin)用法及代码示例
- erlang duplicate(N, Elem)用法及代码示例
- erlang drestriction(BinRel1, Set)用法及代码示例
- erlang drestriction(SetFun, Set1, Set2)用法及代码示例
- erlang dh_gex_group(MinSize, SuggestedSize, MaxSize, Groups)用法及代码示例
- erlang dissect_query(QueryString)用法及代码示例
注:本文由纯净天空筛选整理自erlang.org大神的英文原创作品 domain(LogEvent, Extra) -> logger:filter_return()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。