当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。