Beego之日志处理-logs

Jackey Golang 6,213 次浏览 , 没有评论
  1. package models
  2.  
  3. import (
  4. "encoding/json"
  5. "github.com/astaxie/beego/logs"
  6. )
  7.  
  8. // beego 日志配置结构体
  9. type LoggerConfig struct {
  10. FileName string `json:"filename"` //将日志保存到的文件名及路径
  11. Level int `json:"level"` // 日志保存的时候的级别,默认是 Trace 级别
  12. Maxlines int `json:"maxlines"` // 每个文件保存的最大行数,若文件超过maxlines,则将日志保存到下个文件中,为0表示不设置。默认值 1000000
  13. Maxsize int `json:"maxsize"` // 每个文件保存的最大尺寸,若文件超过maxsize,则将日志保存到下个文件中,为0表示不设置。默认值是 1 << 28, //256 MB
  14. Daily bool `json:"daily"` // 设置日志是否每天分割一次,默认是 true
  15. Maxdays int `json:"maxdays"` // 设置保存最近几天的日志文件,超过天数的日志文件被删除,为0表示不设置,默认保存 7 天
  16. Rotate bool `json:"rotate"` // 是否开启 logrotate,默认是 true
  17. Perm string `json:"perm"` // 日志文件权限
  18. RotatePerm string `json:"rotateperm"`
  19. EnableFuncCallDepth bool `json:"-"` // 输出文件名和行号
  20. LogFuncCallDepth int `json:"-"` // 函数调用层级
  21. }
  22.  
  23. func LogsInit() {
  24. var logCfg = LoggerConfig{
  25. FileName: "logs/log.log",
  26. Level: logs.LevelDebug,
  27. Daily: true,
  28. EnableFuncCallDepth: true,
  29. LogFuncCallDepth: 3,
  30. RotatePerm: "777",
  31. Perm: "777",
  32. }
  33.  
  34. // 设置beego log库的配置
  35. b, _ := json.Marshal(&logCfg)
  36. _ = logs.SetLogger(logs.AdapterFile, string(b))
  37. //logs.Async() //为了提升性能, 可以设置异步输出
  38. logs.Async(1e3) //异步输出允许设置缓冲 chan 的大小
  39. }

在main方法里面,调用初始化方法:

models.LogsInit()

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

Go