# README
log
go-dep2p 使用的日志库
log 封装了 zap 以提供日志门面。log 管理日志实例并允许单独控制它们的级别。
安装
go get github.com/dep2p/log
使用方法
导入包并以 logging
命名后,可以像这样创建 EventLogger
实例:
var log = logging.Logger("子系统名称")
然后可以使用它来输出 printf 风格的日志消息,支持七个标准级别。
可以为所有日志记录器设置级别:
lvl, err := logging.LevelFromString("error")
if err != nil {
panic(err)
}
logging.SetAllLoggers(lvl)
也可以单独设置:
err := logging.SetLogLevel("net:pubsub", "info")
if err != nil {
panic(err)
}
或通过正则表达式设置:
err := logging.SetLogLevelRegex("net:.*", "info")
if err != nil {
panic(err)
}
环境变量
本包可以通过多个环境变量进行配置。
GOLOG_LOG_LEVEL
指定日志级别,可以全局设置也可以针对每个子系统设置。
例如,以下设置会将全局最低日志级别设为 error
,但将 subsystem1
的最低日志级别降至 info
,将 subsystem2
的最低日志级别降至 debug
。
export GOLOG_LOG_LEVEL="error,subsystem1=info,subsystem2=debug"
DeP2P_LOGGING
是此环境变量的已弃用别名。
GOLOG_FILE
指定日志应写入的文件。如果未指定此选项,日志将写入标准错误输出。
export GOLOG_FILE="/path/to/my/file.log"
GOLOG_OUTPUT
指定日志输出的位置。可以使用以下一个或多个值,用 +
组合:
stdout
-- 写入标准输出stderr
-- 写入标准错误file
-- 写入GOLOG_FILE
指定的文件
例如,如果要同时输出到文件和标准错误:
export GOLOG_FILE="/path/to/my/file.log"
export GOLOG_OUTPUT="stderr+file"
仅设置 GOLOG_FILE
将阻止日志写入标准错误。
GOLOG_LOG_FMT
指定日志消息格式。支持以下值:
color
-- 人类可读的彩色(ANSI)输出nocolor
-- 人类可读的纯文本输出json
-- 结构化 JSON
例如,要输出结构化 JSON(便于解析):
export GOLOG_LOG_FMT="json"
当输出到终端时,日志格式默认为 color
,否则默认为 nocolor
。
DeP2P_LOGGING_FMT
是此环境变量的已弃用别名。
GOLOG_LOG_LABELS
指定应添加到所有日志消息中的标签集,以逗号分隔的键值对形式。例如,以下设置会为每个日志条目添加 {"app": "example_app", "dc": "sjc-1"}
。
export GOLOG_LOG_LABELS="app=example_app,dc=sjc-1"
许可证
MIT