| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- package main
- import (
- "os"
- "path/filepath"
- "sync"
- "hnyfkj.com.cn/rtu/linux/baseapp"
- )
- const defaultCfg = `[Log]
- ; 日志级别: trace、debug、info、warn、error、fatal、panic
- Level = info
- ; 输出目标: console(控制台)、file(文件)、all(控制台+文件)
- Target = all
- ; 每个日志文件的最大大下, 以"MB"为单位
- MaxFileSize = 5
- ; 保留的最大备份文件数量
- MaxBackupFileCnts = 1
- `
- var (
- initCfgOnce sync.Once
- initCfgErr error
- )
- func EnsureDefaultConfig() error {
- initCfgOnce.Do(func() {
- initCfgErr = ensureDefaultConfig()
- })
- return initCfgErr
- }
- func ensureDefaultConfig() error {
- cfgFile := filepath.Join(
- baseapp.CFG_DIR,
- "config.ini",
- )
- if err := os.MkdirAll(
- baseapp.CFG_DIR,
- 0755,
- ); err != nil {
- return err
- }
- f, err := os.OpenFile(
- cfgFile,
- os.O_CREATE|os.O_EXCL|os.O_WRONLY,
- 0644,
- )
- if err != nil {
- if os.IsExist(err) {
- return nil
- }
- return err
- }
- defer func() {
- _ = f.Close()
- }()
- if _, err = f.WriteString(defaultCfg); err != nil {
- _ = os.Remove(cfgFile)
- return err
- }
- if err = f.Close(); err != nil {
- _ = os.Remove(cfgFile)
- return err
- }
- return nil
- }
|