18
config/application.yml
Normal file
18
config/application.yml
Normal file
@@ -0,0 +1,18 @@
|
||||
server:
|
||||
addr: :8888
|
||||
metrics: true
|
||||
healthz: true
|
||||
readyz: true
|
||||
pprof: true
|
||||
logger:
|
||||
# 日志存放路径,关闭控制台日志后,日志文件存放位置
|
||||
# path: temp/logs
|
||||
# 日志输出,file:文件,default:命令行,其他:命令行
|
||||
stdout: default #控制台日志,启用后,不输出到文件
|
||||
# 日志等级, trace, debug, info, warn, error, fatal
|
||||
level: info
|
||||
# 日志格式 json json格式
|
||||
json: false
|
||||
database:
|
||||
driver: mysql
|
||||
source: 'root:123456@tcp(127.0.0.1:3306)/service_http?charset=utf8&parseTime=True&loc=Local&timeout=1000ms'
|
||||
46
config/config.go
Normal file
46
config/config.go
Normal file
@@ -0,0 +1,46 @@
|
||||
package config
|
||||
|
||||
import (
|
||||
"log/slog"
|
||||
"os"
|
||||
|
||||
"github.com/mss-boot-io/mss-boot/pkg/config"
|
||||
"github.com/mss-boot-io/mss-boot/pkg/config/gormdb"
|
||||
"github.com/mss-boot-io/mss-boot/pkg/config/source"
|
||||
)
|
||||
|
||||
/*
|
||||
* @Author: lwnmengjing<lwnmengjing@qq.com>
|
||||
* @Date: 2023/10/31 16:37:31
|
||||
* @Last Modified by: lwnmengjing<lwnmengjing@qq.com>
|
||||
* @Last Modified time: 2023/10/31 16:37:31
|
||||
*/
|
||||
|
||||
var Cfg Config
|
||||
|
||||
type Config struct {
|
||||
Server config.Listen `yaml:"server" json:"server"`
|
||||
Database *gormdb.Database `yaml:"database" json:"database"`
|
||||
Logger config.Logger `yaml:"logger" json:"logger"`
|
||||
}
|
||||
|
||||
func (e *Config) Init() {
|
||||
opts := []source.Option{
|
||||
source.WithDir("config"),
|
||||
source.WithProvider(source.Local),
|
||||
}
|
||||
err := config.Init(e, opts...)
|
||||
if err != nil {
|
||||
slog.Error("Config init failed", slog.Any("err", err))
|
||||
os.Exit(-1)
|
||||
}
|
||||
|
||||
e.Logger.Init()
|
||||
e.Database.Init()
|
||||
}
|
||||
|
||||
func (e *Config) OnChange() {
|
||||
e.Logger.Init()
|
||||
e.Database.Init()
|
||||
slog.Info("!!! cfg change and reload")
|
||||
}
|
||||
Reference in New Issue
Block a user