Exemple #1
0
// 初始化日志模块
func newLogger(config LogConfig, isDaily bool) (*logs.BeeLogger, error) {
	var logger *logs.BeeLogger

	var configInner logConfigInner
	if config.Filename == "" {
		return logger, errors.New("文件名不能为空哈")
	}
	configInner.Filename = config.Filename

	if config.Maxlines == 0 {
		config.Maxlines = 1000000
	}
	configInner.Maxlines = config.Maxlines

	configInner.Daily = isDaily

	if config.Maxdays == 0 {
		config.Maxdays = 7
	}
	configInner.Maxdays = config.Maxdays

	logLevel := map[string]int{
		"error": logs.LevelError,
		"warn":  logs.LevelWarning,
		"info":  logs.LevelInformational,
	}
	var logLevelInt int
	if config.Level == "" {
		logLevelInt = logs.LevelInformational
	} else {
		var ok bool
		logLevelInt, ok = logLevel[config.Level]
		if ok == false {
			return logger, errors.New("日志等级设置不正确")
		}
	}
	configInner.Level = logLevelInt
	configInner.Rotate = true

	// 普通日志
	logger = logs.NewLogger(10000)
	logConfigString, err := json.Marshal(&configInner)
	if err != nil {
		return logger, err
	}

	err = logger.SetLogger("file", string(logConfigString))
	if err != nil {
		return logger, err
	}

	return logger, nil
}