You are viewing an old version of this page. View the current version.
Compare with Current View Page History
« Previous Version 19 Next »
日志组件是GoFrame框架核心的组件之一,当然也支持非常方便的配置管理功能。
GoFrame
日志组件支持配置文件,当使用g.Log(单例名称)获取Logger单例对象时,将会自动通过默认的配置管理对象获取对应的Logger配置。默认情况下会读取logger.单例名称配置项,当该配置项不存在时,将会读取默认的logger配置项。配置项请参考配置对象结构定义:https://godoc.org/github.com/gogf/gf/os/glog#Config
g.Log(单例名称)
Logger
logger.单例名称
logger
完整配置文件配置项及说明如下,其中配置项名称不区分大小写:
[logger] path = "/var/log/" # 日志文件路径。默认为空,表示关闭,仅输出到终端 file = "{Y-m-d}.log" # 日志文件格式。默认为"{Y-m-d}.log" prefix = "" # 日志内容输出前缀。默认为空 level = "all" # 日志输出级别 ctxKeys = [] # 自定义Context上下文变量名称,自动打印Context的变量到日志中。默认为空 header = true # 是否打印日志的头信息。默认true stdout = true # 日志是否同时输出到终端。默认true rotateSize = 0 # 按照日志文件大小对文件进行滚动切分。默认为0,表示关闭滚动切分特性 rotateExpire = 0 # 按照日志文件时间间隔对文件滚动切分。默认为0,表示关闭滚动切分特性 rotateBackupLimit = 0 # 按照切分的文件数量清理切分文件,当滚动切分特性开启时有效。默认为0,表示不备份,切分则删除 rotateBackupExpire = 0 # 按照切分的文件有效期清理切分文件,当滚动切分特性开启时有效。默认为0,表示不备份,切分则删除 rotateBackupCompress = 0 # 滚动切分文件的压缩比(0-9)。默认为0,表示不压缩 rotateCheckInterval = "1h" # 滚动切分的时间检测间隔,一般不需要设置。默认为1小时 writerColorEnable = false # 日志文件是否带上颜色。默认false,表示不带颜色
其中,level配置项使用字符串配置,按照日志级别支持以下配置:DEBU < INFO < NOTI < WARN < ERRO < CRIT,也支持ALL, DEV, PROD常见部署模式配置名称。level配置项字符串不区分大小写。关于日志级别的详细介绍请查看 日志组件-日志级别 章节。
level
DEBU
INFO
NOTI
WARN
ERRO
CRIT
ALL
DEV
PROD
[logger] path = "/var/log" level = "all" stdout = false
随后可以使用g.Log()获取默认的单例对象时自动获取并设置该配置。
g.Log()
多个Logger的配置示例:
[logger] path = "/var/log" level = "all" stdout = false [logger.logger1] path = "/var/log/logger1" level = "dev" stdout = false [logger.logger2] path = "/var/log/logger2" level = "prod" stdout = true
我们可以通过单例对象名称获取对应配置的Logger单例对象:
// 对应 logger.logger1 配置项 l1 := g.Log("logger1") // 对应 logger.logger2 配置项 l2 := g.Log("logger2") // 对应默认配置项 logger l3 := g.Log("none") // 对应默认配置项 logger l4 := g.Log()
配置方法用于模块化使用glog时由开发者自己进行配置管理。
glog
方法列表: https://godoc.org/github.com/gogf/gf/os/glog
简要说明:
SetConfig
SetConfigWithMap
Set*
我们可以使用SetConfigWithMap方法通过Key-Value键值对来设置/修改Logger的特定配置,其余的配置使用默认配置即可。其中Key的名称即是Config这个struct中的属性名称,并且不区分大小写,单词间也支持使用-/_/空格符号连接,具体可参考 类型转换-Struct转换 章节的转换规则。
Key-Value
Key
Config
struct
-
_
空格
简单示例:
logger := glog.New() logger.SetConfigWithMap(g.Map{ "path": "/var/log", "level": "all", "stdout": false, "StStatus": 0, }) logger.Print("test")
其中StStatus表示是否开启堆栈打印,设置为0表示关闭。键名也可以使用stStatus, st-status, st_status, St Status,其他配置属性以此类推。
StStatus
0
stStatus
st-status
st_status
St Status