123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- package utils
-
- import (
- "errors"
- "fmt"
- "runtime"
-
- "github.com/astaxie/beego/config"
- "github.com/astaxie/beego/logs"
- )
-
- var instances = make(map[string]*logs.BeeLogger)
-
- // NewLog 构造日志对象
- func NewLog(tp ...string) *logs.BeeLogger {
- logType := "common"
- if len(tp) > 0 {
- if tp[0] != "" {
- logType = tp[0]
- }
- }
-
- if v, ok := instances[logType]; ok {
- return v
- }
-
- log := logs.NewLogger()
- instances[logType] = log
-
- // 读取配置文件
- conf, err := config.NewConfig("ini", GetAppRoot()+"/conf/log.conf")
- if err != nil {
- log.SetLogger(logs.AdapterConsole)
- return log
- }
-
- // 读文件存储位置
- filename := conf.String(logType + "::filename")
- // 输出级别
- level := conf.String(logType + "::level")
- if level == "" {
- level = "error"
- }
-
- if filename == "" {
- filename = "./" + logType + ".log"
- }
-
- log.Async()
- log.SetLogger(logs.AdapterFile, `{"filename":"`+filename+`"}`)
- return log
- }
-
- // LogError 错误日志
- func LogError(v ...interface{}) error {
- log := instances["common"]
-
- preMsg := ""
- _, file, line, ok := runtime.Caller(1)
- if ok {
- preMsg = fmt.Sprintf("file: %s line=%d : ", file, line)
- }
-
- log.Error(preMsg, v...)
-
- if len(v) > 0 {
- firstV := v[0]
-
- switch err := firstV.(type) {
- case string:
- return errors.New(err)
- case error:
- return err
- default:
- msg := "Unknown error type"
- return errors.New(msg)
- }
- }
-
- return nil
- }
-
- // LogInfo Info 日志
- func LogInfo(v ...interface{}) {
- log := instances["common"]
-
- preMsg := ""
- _, file, line, ok := runtime.Caller(1)
- if ok {
- preMsg = fmt.Sprintf("file: %s line=%d : ", file, line)
- }
-
- log.Error(preMsg, v...)
- }
-
- // GetDefaultLogger 获取默认 logger
- func GetDefaultLogger() *logs.BeeLogger {
- log := instances["common"]
- log.SetLogFuncCallDepth(4)
- return log
- }
-
- func LogInit() {
- NewLog()
- }
|