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() |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!