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

1
2
3
package utils
 
var Cfg *config.ConfigT = config.GetConfig()

  

 

posted @   fighting-go  阅读(5)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示