2
0
mirror of https://github.com/acepanel/helper.git synced 2026-02-04 06:43:15 +08:00
Files
helper/pkg/config/config.go

52 lines
923 B
Go

package config
import (
"fmt"
"os"
"sync"
"time"
)
// Config 全局配置
type Config struct {
Verbose bool
LogFile string
logWriter *os.File
logMu sync.Mutex
}
// Global 全局配置实例
var Global = &Config{}
// InitLogFile 初始化日志文件
func (c *Config) InitLogFile() error {
if c.LogFile == "" {
return nil
}
f, err := os.OpenFile(c.LogFile, os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0644)
if err != nil {
return err
}
c.logWriter = f
return nil
}
// CloseLogFile 关闭日志文件
func (c *Config) CloseLogFile() {
if c.logWriter != nil {
c.logWriter.Close()
}
}
// WriteLog 写日志
func (c *Config) WriteLog(format string, args ...interface{}) {
if c.logWriter == nil {
return
}
c.logMu.Lock()
defer c.logMu.Unlock()
timestamp := time.Now().Format("2006-01-02 15:04:05")
msg := fmt.Sprintf(format, args...)
fmt.Fprintf(c.logWriter, "[%s] %s\n", timestamp, msg)
}