當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


erlang log(Level, StringOrReport)用法及代碼示例


log(Level, StringOrReport) -> ok
OTP 21.0
log(Level, StringOrReport, Metadata) -> ok
OTP 21.0
log(Level, Format, Args) -> ok
OTP 21.0
log(Level, Fun, FunArgs) -> ok
OTP 21.0
log(Level, Format, Args, Metadata) -> ok
OTP 21.0
log(Level, Fun, FunArgs, Metadata) -> ok
OTP 21.0
類型:
Level = level()
StringOrReport = unicode:chardata() | report()
Format = io:format()
Args = [term()]
Fun = msg_fun()
FunArgs = term()
Metadata = metadata()

在給定的位置創建日誌事件日誌級別,給定信息被記錄和metadata.例子:

%% A plain string
logger:log(info, "Hello World").
%% A plain string with metadata
logger:log(debug, "Hello World", #{ meta => data }).
%% A format string with arguments
logger:log(warning, "The roof is on ~ts",[Cause]).
%% A report
logger:log(warning, #{ what => roof, cause => Cause }).

消息和元數據可以直接在參數中給出,也可以從 fun 返回。在消息/元數據的計算成本非常昂貴的情況下,傳遞 fun 而不是直接傳遞消息/元數據非常有用。這是因為隻有在實際需要消息/元數據時才會評估樂趣,如果不記錄日誌事件,則可能根本不會評估樂趣。例子:

%% A plain string with expensive metadata
logger:info(fun([]) -> {"Hello World", #{ meta => expensive() }} end,[]).
%% An expensive report
logger:debug(fun(What) -> #{ what => What, cause => expensive() } end,roof).
%% A plain string with expensive metadata and normal metadata
logger:debug(fun([]) -> {"Hello World", #{ meta => expensive() }} end,[],
             #{ meta => data }).

當元數據作為參數給出並從 fun 中返回時,它們將被合並。如果存在相等的鍵,則從 fun 返回的元數據中獲取值。

相關用法


注:本文由純淨天空篩選整理自erlang.org大神的英文原創作品 log(Level, StringOrReport) -> ok。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。