id: logging title: 日志记录 sidebar_label: 日志记录
概览
Loom 有内建的可配置的日志记录。 用户可以配置日志的等级和日志的存储位置。
Loom SDK 日志
配置日志层级
在 Loom SDK 中有两种日志类型 第一种是区块链事物和共识事件的日志。 第二种是 Loom SDK 创建的日志,记录例如激发事件等内容。
在你的loom.yaml
中设置以下内容来配置日志等级。
LoomLogLevel: debug # sets log level for events emitted from the loom sdk
BlockchainLogLevel: error # sets log level for the blockchain logs.
LoomLogLevel
和 BlockchainLogLevel
的默认分别是info
和 error
配置日志目录
目前,Loom 日志支持指定文件作为日志存储目标。
LogDestination: "file://loom.log" # loom.log is also the default target.
要记录到 stderr, 指定目录为 file://-
合约日志
诸如日志层级和目录的配置对合约来说是分开的。 这些是使用环境变量。 例如: CONTRACT_LOG_LEVEL=debug CONTRACT_LOG_DESTINATION="file://-" $LOOM_EXE run
而这将配置合约日志的目录为 stderr,并将事件层级配置为debug
日志层级和目录的默认值分别是info
and file://contract.log
。
在合约中记录日志
在合约上下文中,有一个提前配置好的记录器可以用于结构化的日志记录。 例如
ctx.Logger().Info("Created account", "owner", owner, "address", addr)
将生成一行这样的日志:
ts=2018-05-13T02:06:49.817229589Z module=loom level=info _msg="Created account" owner=godbole4 address="\ufffd8\ufffd\ufffd\ufffd\ufffd\ufffd$Y+H\ufffd\u0012\u000c]\u001a\ufffd\ufffd\ufffd\ufffd"
上下文记录器可用的方法有 Error
, Warn
, Info
, 以及 Debug
。