Gob 框架Gob 框架
主页
快速开始
使用文档
服务提供者
提供命令
Github
主页
快速开始
使用文档
服务提供者
提供命令
Github
    • gob:app
    • gob:cache
    • gob:config
    • gob:distributed
    • gob:env
    • gob:id
    • gob:kernel
    • gob:log
    • gob:orm
    • gob:redis
    • gob:sls
    • gob:ssh
    • gob:trace

gob:log

服务介绍:

提供日志记录相关操作,目前支持控制台、单文件、切割文件、阿里云SLS 等日志输出通道

阿里云SLS 需要配置对应的 sls 服务 sls

支持命令:无

支持配置:

通过配置文件 config/[env]/log.yaml 可以配置缓存服务的驱动和参数,如下是一个配置示例:

注意:rotate库已于21年存档,寻找替代品准备移除

## drivers(启用的日志通道)默认值: [console]
## level(日志等级)默认值: info
## formatter(格式化器)默认值: text
## folder(文件目录)默认值取 app 的 LogFolder地址
## file(文件名)默认值:app.log

# 启用的日志通道
drivers: [console,single,rotate,rolling]
level: trace
formatter: text
folder: ./storage/log/

# 控制台输出
console:
  level: info
  formatter: text

# 单文件输出
single:
  level: info
  folder: ./storage/log/
  file: app_single.log

# 按日期切割(rotate库已于21年存档,寻找替代品准备移除)
rotate:
  level: info               # 日志级别
  folder: ./storage/log/    # 日志文件
  file: app_rotate.log      # 保存的日志文件
  rotate_count: 10          # 最多日志文件个数
  rotate_size: 1048576      # 每个日志大小(byte)
  rotate_time: "1d"         # 切割时间
  max_age: "90d"            # 文件保存时间
  date_format: "%Y-%m-%d"   # 文件后缀格式

# 按容量切割(缺少按日切割功能)
rolling:
  level: info             # 日志级别
  folder: ./storage/log/  # 日志文件
  file: app_rolling.log   # 保存的日志文件
  maxSize: 1              # 文件大小(mb) 0为不限制
  maxAge: 0               # 保留旧日志文件的最大天数 0为不限制
  maxBackups: 0           # 保留旧日志文件的最大数量 0为不限制

# 阿里云的 SLS 日志
aliyun_sls:
  level: info
  formatter: json

提供方法:

type Log interface {
	// Panic 表示会导致整个程序出现崩溃的日志信息
	Panic(ctx context.Context, msg string, fields map[string]interface{})
	// Fatal 表示会导致当前这个请求出现提前终止的错误信息
	Fatal(ctx context.Context, msg string, fields map[string]interface{})
	// Error 表示出现错误,但是不一定影响后续请求逻辑的错误信息
	Error(ctx context.Context, msg string, fields map[string]interface{})
	// Warn 表示出现错误,但是一定不影响后续请求逻辑的报警信息
	Warn(ctx context.Context, msg string, fields map[string]interface{})
	// Info 表示正常的日志信息输出
	Info(ctx context.Context, msg string, fields map[string]interface{})
	// Debug 表示在调试状态下打印出来的日志信息
	Debug(ctx context.Context, msg string, fields map[string]interface{})
	// Trace 表示最详细的信息,一般信息量比较大,可能包含调用堆栈等信息
	Trace(ctx context.Context, msg string, fields map[string]interface{})
}
Last Updated:
Contributors: 陈壁浩
Prev
gob:kernel
Next
gob:orm