Logger.Formatter
Logger.Formatter
为日志格式化数据的方便性。
此模块允许开发人员指定用作日志消息模板的字符串,例如:
$time $metadata[$level] $message\n
将将错误消息打印为:
18:43:12.439 user_id=13 [error] Hello\n
可以使用的有效参数有:
$time
-发送日志消息的时间
$date
-日志消息发送的日期
$message
-日志信息
$level
-原木水平
$node
-打印消息的节点
$metadata
-用户控制的数据"key=val key2=val2"
格式
$levelpad
-如果级别为4个字符长,则设置为单个空格,否则设置为空空间。用于在级别之后对齐消息。
后端通常允许开发人员通过配置文件提供此类控制字符串。本模块提供compile/1
,它将字符串编译为运行时快速操作的格式,并且format/5
将编译的模式格式化为实际的IO数据。
元数据
要发送给记录器的元数据可以用Logger.metadata/0
和Logger.metadata/1
职能。例如,您可以设置Logger.metadata([user_id: 13])
添加用户[医]ID元数据到当前进程。用户可以将后端配置为选择要打印的元数据,并替换$metadata
价值。
摘要
类型
pattern()time()
函数
compile(str)
将格式字符串编译为format/5
能处理
format(config, level, msg, ts, md)
采用已编译的格式,并注入、级别、时间戳、消息和元数据列表,并返回格式正确的字符串。
prune(binary)
修剪无效的utf-8码点
类型
pattern()
pattern ::
:date |
:level |
:levelpad |
:message |
:metadata |
:node |
:time
time()
time() :: {{1970..10000, 1..12, 1..31}, {0..23, 0..59, 0..59, 0..999}}
功能
compile(str)
compile{atom, atom}) :: {atom, atom}
compile(binary | nil) :: [pattern | binary]
将格式字符串编译为format/5
可以应付。
检查模块文档以获得有关有效参数的文档。如果你通过nil
,默认为:$time $metadata [$level] $levelpad$message\n
如果您想让您自己的自定义格式化程序简单地传递{module, function}
到compile/1
其余的都处理好了。
iex> Logger.Formatter.compile("$time $metadata [$level] $message\n")
[:time, " ", :metadata, " [", :level, "] ", :message, "\n"]
format(config, level, msg, ts, md)
format{atom, atom} | [pattern | binary], Logger.level, Logger.message, time, keyword) :: IO.chardata
采用编译后的格式,注入、级别、时间戳、消息和元数据列表,并返回格式正确的字符串。
prune(binary)
prune(IO.chardata) :: IO.chardata
修剪无效的UTF-8码点.
通常在无法打印数据时在格式化后调用。