golang开发

项目目录结构

demo

  config

    config.go

    

  conf

    config.yaml

  log

      utils

    utils.go

  main.go

代码

config.go

package config

import (
"fmt"
"github.com/toolkits/pkg/file"
"github.com/toolkits/pkg/logger"
"os"
)

type ConfigT struct {
Logger ConfigLogger `yaml:"logger"`
}
type ConfigLogger struct {
Dir string `yaml:"dir"`
Level string `yaml:"level"`
KeepHours uint `yaml:"keepHours"`
}

var Config *ConfigT

func Init(c *ConfigT) {
fb, err := logger.NewFileBackend(c.Logger.Dir)
if err != nil {
fmt.Println("cannot init logger:", err)
os.Exit(1)
}
fb.SetRotateByHour(false)
fb.SetKeepHours(c.Logger.KeepHours)
logger.SetLogging(c.Logger.Level, fb)
}

func GetConfig() *ConfigT {
if err := file.ReadYaml("conf/config.yaml", &Config); err != nil {
panic(err)
}
Init(Config)
return Config
}

config.yaml

logger:
dir: logs
level: DEBUG
keepHours: 240

utils.go

package utils

var Cfg *config.ConfigT = config.GetConfig()

  

 

posted @ 2024-05-17 17:19  fighting-go  阅读(14)  评论(0)    收藏  举报