Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

日志组件是GF框架核心的组件之一,当然也支持非常方便的配置管理功能。

单例对象

日志组件支持单例模式,使用g.Log(单例名称)获取不同的单例日志管理对象。提供单例对象的目的在于针对不同业务场景可以使用不同配置的日志管理对象。我们推荐使用g.Log()方法获取单例对象来进行日志操作,该方法内部会自动读取配置文件并初始化单例对象,该初始化操作仅会执行一次。

配置文件(推荐)

日志组件支持配置文件,当使用g.Log(单例名称)获取Logger单例对象时,将会自动通过默认的配置管理对象获取对应的Logger配置。默认情况下会读取logger.单例名称配置项,当该配置项不存在时,将会读取默认的logger配置项。配置项请参考配置对象结构定义:https://godoc.org/github.com/gogf/gf/os/glog#Config

...

[logger]
	Path                 = "/var/log/"   # 日志文件路径。默认为空,表示关闭,仅输出到终端
	File                 = "{Y-m-d}.log" # 日志文件格式。默认为"{Y-m-d}.log"
	Prefix               = ""            # 日志内容输出前缀。默认为空
	CtxKeys              = []            # Context上下文变量名称,自动打印Context的变量到日志中。默认为空
	HeaderPrint          = true          # 是否打印日志的头信息。默认true
	StdoutPrint          = true          # 日志是否同时输出到终端。默认true
	RotateSize           = 0             # 按照日志文件大小对文件进行滚动切分。默认为0,表示关闭滚动切分特性
	RotateExpire         = 0             # 按照日志文件时间间隔对文件滚动切分。默认为0,表示关闭滚动切分特性
	RotateBackupLimit    = 0             # 按照切分的文件数量清理切分文件,当滚动切分特性开启时有效。默认为0,表示不备份,切分则删除
	RotateBackupExpire   = 0             # 按照切分的文件有效期清理切分文件,当滚动切分特性开启时有效。默认为0,表示不备份,切分则删除
	RotateBackupCompress = 0             # 滚动切分文件的压缩比(0-9)。默认为0,表示不压缩
	RotateCheckInterval  = "1h"          # 滚动切分的时间检测间隔,一般不需要设置。默认为1小时

示例1,默认配置项

[logger]
    path   = "/var/log"
    level  = "all"
    stdout = false

随后可以使用g.Log()获取默认的单例对象时自动获取并设置该配置。

示例2,多个配置项

多个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.logger1 配置项
l1 := g.Log("logger1")
// 对应 logger.logger2 配置项
l2 := g.Log("logger2")
// 对应默认配置项 logger
l3 := g.Log("none")
// 对应默认配置项 logger
l4 := g.Log()

配置方法(高级)

配置方法用于模块化使用glog时由开发者自己进行配置管理。

...