完成config和logger
This commit is contained in:
parent
8336a4f4a7
commit
be60a98397
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
bin/
|
||||
go.sum
|
||||
17
config.go
17
config.go
@ -2,11 +2,9 @@ package main
|
||||
|
||||
import (
|
||||
"gopkg.in/yaml.v2"
|
||||
"io/ioutil"
|
||||
"log"
|
||||
"os"
|
||||
)
|
||||
|
||||
// 配置结构体
|
||||
type Config struct {
|
||||
Server struct {
|
||||
Timeout int `yaml:"timeout"`
|
||||
@ -15,20 +13,19 @@ type Config struct {
|
||||
} `yaml:"server"`
|
||||
}
|
||||
|
||||
// 全局配置变量
|
||||
// this is a global constant since it's shared
|
||||
var config Config
|
||||
|
||||
// 加载配置文件
|
||||
func loadConfig(filePath string) error {
|
||||
data, err := ioutil.ReadFile(filePath)
|
||||
func LoadConfig(filePath string) error {
|
||||
data, err := os.ReadFile(filePath)
|
||||
if err != nil {
|
||||
getLogger().Errorf("Failed to read config file: %v", err)
|
||||
GetLogger().Fatalf("Failed to read config file: %v", err)
|
||||
return err
|
||||
}
|
||||
if err := yaml.Unmarshal(data, &config); err != nil {
|
||||
getLogger().Errorf("Failed to unmarshal config: %v", err)
|
||||
GetLogger().Fatalf("Failed to unmarshal config: %v", err)
|
||||
return err
|
||||
}
|
||||
getLogger().Info("Configuration loaded successfully")
|
||||
GetLogger().Info("Configuration loaded successfully")
|
||||
return nil
|
||||
}
|
||||
|
||||
6
go.mod
6
go.mod
@ -1,3 +1,9 @@
|
||||
module minimcd
|
||||
|
||||
go 1.23.4
|
||||
|
||||
require (
|
||||
github.com/sirupsen/logrus v1.9.3
|
||||
golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8 // indirect
|
||||
gopkg.in/yaml.v2 v2.4.0
|
||||
)
|
||||
|
||||
55
logger.go
Normal file
55
logger.go
Normal file
@ -0,0 +1,55 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"github.com/sirupsen/logrus"
|
||||
"os"
|
||||
)
|
||||
|
||||
var logger *logrus.Logger
|
||||
|
||||
func InitLogger() {
|
||||
logger = logrus.New()
|
||||
logger.SetFormatter(&logrus.TextFormatter{
|
||||
FullTimestamp: true,
|
||||
})
|
||||
logLevel := os.Getenv("LOG_LEVEL")
|
||||
switch logLevel {
|
||||
case "debug":
|
||||
logger.SetLevel(logrus.DebugLevel)
|
||||
case "info":
|
||||
logger.SetLevel(logrus.InfoLevel)
|
||||
case "warn", "warning":
|
||||
logger.SetLevel(logrus.WarnLevel)
|
||||
case "error":
|
||||
logger.SetLevel(logrus.ErrorLevel)
|
||||
case "fatal":
|
||||
logger.SetLevel(logrus.FatalLevel)
|
||||
case "panic":
|
||||
logger.SetLevel(logrus.PanicLevel)
|
||||
default:
|
||||
// 默认使用 InfoLevel
|
||||
logger.SetLevel(logrus.InfoLevel)
|
||||
}
|
||||
logOutput := os.Getenv("LOG_OUTPUT")
|
||||
switch logOutput {
|
||||
case "file":
|
||||
// 设置日志输出到文件
|
||||
logFile, err := os.OpenFile("/var/log/minimcd.log", os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0666)
|
||||
if err != nil {
|
||||
// 如果文件打开失败,回退到标准输出
|
||||
logger.SetOutput(os.Stdout)
|
||||
logger.Warn("Failed to log to file, using default stdout")
|
||||
} else {
|
||||
logger.SetOutput(logFile)
|
||||
}
|
||||
case "stdout", "":
|
||||
// 默认输出到控制台
|
||||
logger.SetOutput(os.Stdout)
|
||||
default:
|
||||
// 默认输出到控制台
|
||||
logger.SetOutput(os.Stdout)
|
||||
}
|
||||
}
|
||||
func GetLogger() *logrus.Logger {
|
||||
return logger
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user