Beego Log日志模块配置及使用

由于首次接触beego,在使用log时,

1 目录结构
在这里插入图片描述
2 log 配置app.conf

[log]
log_level = 7 //debug级别
log_path = logs/app.log //指定log文件名
maxlines = 10 //log文件最大行数
maxsize = 1024 //log文件大小限制

后两项是控制log文件大小的,其中maxlines 超出后会自动生成新的app.log文件,原log文件重命名为app.2020-03-22.001.log,自动实现日志切割

3 log结构封装
log文件在components目录下,logger.go

package components

import (
	"fmt"
	"encoding/json"
	"github.com/astaxie/beego"
	"github.com/astaxie/beego/logs"
	"github.com/astaxie/beego/config"
)

func InitLogger() (err error) {
	BConfig, err := config.NewConfig("ini", "conf/app.conf")
	if err != nil{
		fmt.Println("config init error:", err)
		return
	}
	maxlines, lerr := BConfig.Int64("log::maxlines")
	if lerr != nil {
		maxlines = 1000
	}

	logConf := make(map[string]interface{})
	logConf["filename"] = BConfig.String("log::log_path")
	level,_ := BConfig.Int("log::log_level")
	logConf["level"] = level
	logConf["maxlines"] = maxlines
	 
    confStr, err := json.Marshal(logConf)
    if err != nil {
        fmt.Println("marshal failed,err:", err)
        return
	}
	beego.SetLogger(logs.AdapterFile, string(confStr))
	beego.SetLogFuncCall(true)
	return
}

4 注册

package main

import (
	"github.com/astaxie/beego"
	_ "template/routers"
	"template/components"
)

func init() {
	components.InitLogger() //调用logger初始化
	components.InitDB() //db初始化,多db注册
}

func main() {
	beego.Run()
}

5 日志级别及使用

1-7级别递减,默认是trace,显示当前数字以前的级别,例如:3时,显示【Emergency】【Alert】【Critical】【Error】

// RFC5424 log message levels.
const (
	LevelEmergency = iota
	LevelAlert        //1
	LevelCritical	  //2
	LevelError		  //3
	LevelWarning	  //4
	LevelNotice		  //5
	LevelInformational//6
	LevelDebug		  //7
)
beego.Info("hello world");

打印的日志格式如下
2020/03/22 14:54:07.509 [I] [RuleController.go:16] hello world

参考文档
https://beego.me/docs/module/logs.md

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值