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()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。