78 lines
3.2 KiB
Go
78 lines
3.2 KiB
Go
package config
|
||
|
||
import (
|
||
"os"
|
||
|
||
"git.hpds.cc/Component/logging"
|
||
yaml "gopkg.in/yaml.v3"
|
||
)
|
||
|
||
type FolderMonitorConfig struct {
|
||
Name string `yaml:"name" json:"name" toml:"name"`
|
||
MonitorPath string `json:"monitorPath" yaml:"monitorPath" toml:"monitorPath"`
|
||
TempPath string `json:"tempPath" yaml:"tempPath" toml:"tempPath"`
|
||
DatasetId int `yaml:"datasetId" json:"datasetId" toml:"datasetId"`
|
||
Logging LogOptions `yaml:"logging" json:"logging" tom:"logging"`
|
||
Node HpdsNode `yaml:"node,omitempty" json:"node,omitempty" toml:"node,omitempty"`
|
||
Funcs []FuncConfig `yaml:"functions,omitempty" json:"funcs,omitempty" toml:"funcs,omitempty"`
|
||
}
|
||
|
||
type LogOptions struct {
|
||
Path string `yaml:"path" json:"path" toml:"path"` // 文件保存地方
|
||
Prefix string `yaml:"prefix" json:"prefix" toml:"prefix"` // 日志文件前缀
|
||
ErrorFileSuffix string `yaml:"errorFileSuffix" json:"errorFileSuffix" toml:"errorFileSuffix"` // error日志文件后缀
|
||
WarnFileSuffix string `yaml:"warnFileSuffix" json:"warnFileSuffix" toml:"warnFileSuffix"` // warn日志文件后缀
|
||
InfoFileSuffix string `yaml:"infoFileSuffix" json:"infoFileSuffix" toml:"infoFileSuffix"` // info日志文件后缀
|
||
DebugFileSuffix string `yaml:"debugFileSuffix" json:"debugFileSuffix" toml:"debugFileSuffix"` // debug日志文件后缀
|
||
Level string `yaml:"level" json:"level" toml:"level"` // 日志等级
|
||
MaxSize int `yaml:"maxSize" json:"maxSize" toml:"maxSize"` // 日志文件大小(M)
|
||
MaxBackups int `yaml:"maxBackups" json:"maxBackups" toml:"maxBackups"` // 最多存在多少个切片文件
|
||
MaxAge int `yaml:"maxAge" json:"maxAge" toml:"maxAge"` // 保存的最大天数
|
||
Development bool `yaml:"development" json:"development" toml:"development"` // 是否是开发模式
|
||
}
|
||
|
||
type HpdsNode struct {
|
||
Host string `yaml:"host"`
|
||
Port int `yaml:"port"`
|
||
Token string `yaml:"token,omitempty"`
|
||
}
|
||
|
||
type FuncConfig struct {
|
||
Name string `yaml:"name"`
|
||
DataTag uint8 `yaml:"dataTag"`
|
||
MqType uint `yaml:"mqType"` //消息类型, 发布,1;订阅;2
|
||
}
|
||
|
||
func ParseConfigByFile(path string) (cfg *FolderMonitorConfig, err error) {
|
||
buffer, err := os.ReadFile(path)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
return load(buffer)
|
||
}
|
||
|
||
func load(buf []byte) (cfg *FolderMonitorConfig, err error) {
|
||
//cViper := viper.New()
|
||
//cViper.SetConfigType("yaml")
|
||
cfg = new(FolderMonitorConfig)
|
||
cfg.Funcs = make([]FuncConfig, 0)
|
||
err = yaml.Unmarshal(buf, cfg)
|
||
return
|
||
}
|
||
|
||
func LoadLoggerConfig(opt LogOptions) *logging.Logger {
|
||
return logging.NewLogger(
|
||
logging.SetPath(opt.Path),
|
||
logging.SetPrefix(opt.Prefix),
|
||
logging.SetDevelopment(opt.Development),
|
||
logging.SetDebugFileSuffix(opt.DebugFileSuffix),
|
||
logging.SetWarnFileSuffix(opt.WarnFileSuffix),
|
||
logging.SetErrorFileSuffix(opt.ErrorFileSuffix),
|
||
logging.SetInfoFileSuffix(opt.InfoFileSuffix),
|
||
logging.SetMaxAge(opt.MaxAge),
|
||
logging.SetMaxBackups(opt.MaxBackups),
|
||
logging.SetMaxSize(opt.MaxSize),
|
||
logging.SetLevel(logging.LogLevel["debug"]),
|
||
)
|
||
}
|