Categorygithub.com/dep2p/log
repositorypackage
0.0.1
Repository: https://github.com/dep2p/log.git
Documentation: pkg.go.dev

# README

log

GoDoc

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