default_log_config.go 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. package servicelib
  2. import (
  3. "os"
  4. "path/filepath"
  5. "hnyfkj.com.cn/rtu/linux/baseapp"
  6. )
  7. const defaultLogConfig = `[Log]
  8. ; 日志级别: trace、debug、info、warn、error、fatal、panic
  9. Level = info
  10. ; 输出目标: console(控制台)、file(文件)、all(控制台+文件)
  11. Target = all
  12. ; 每个日志文件的最大大下, 以"MB"为单位
  13. MaxFileSize = 5
  14. ; 保留的最大备份文件数量
  15. MaxBackupFileCnts = 1
  16. `
  17. func EnsureDefaultLogConfig() (string, error) {
  18. cfgFile := filepath.Join(
  19. baseapp.CFG_DIR,
  20. "config.ini",
  21. )
  22. if err := os.MkdirAll(
  23. baseapp.CFG_DIR,
  24. 0755,
  25. ); err != nil {
  26. return "", err
  27. }
  28. f, err := os.OpenFile(
  29. cfgFile,
  30. os.O_CREATE|os.O_EXCL|os.O_WRONLY,
  31. 0644,
  32. )
  33. if err != nil {
  34. if os.IsExist(err) {
  35. return cfgFile, nil
  36. }
  37. return "", err
  38. }
  39. if _, err = f.WriteString(defaultLogConfig); err != nil {
  40. _ = f.Close()
  41. _ = os.Remove(cfgFile)
  42. return "", err
  43. }
  44. if err = f.Sync(); err != nil {
  45. _ = f.Close()
  46. _ = os.Remove(cfgFile)
  47. return "", err
  48. }
  49. if err = f.Close(); err != nil {
  50. _ = os.Remove(cfgFile)
  51. return "", err
  52. }
  53. return cfgFile, nil
  54. }