LoggerConfParser.go 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. package Logger
  2. import (
  3. "github.com/larspensjo/config"
  4. "fmt"
  5. "git.swzry.com/NSMCServerLauncher/Utils"
  6. )
  7. var LoggerConf NSMCSL_LoggerConf
  8. type NSMCSL_LoggerConfigSingleFileSection struct {
  9. Filename string
  10. MaxSize int
  11. MaxAge int
  12. MaxBackups int
  13. LocalTime bool
  14. Compress bool
  15. }
  16. type NSMCSL_LoggerConf struct {
  17. logdir string
  18. debug_log bool
  19. time_format string
  20. syslogcfg NSMCSL_LoggerConfigSingleFileSection
  21. mcloutlogcfg NSMCSL_LoggerConfigSingleFileSection
  22. mclerrlogcfg NSMCSL_LoggerConfigSingleFileSection
  23. sshlogcfg NSMCSL_LoggerConfigSingleFileSection
  24. }
  25. func LoadLoggerConfig(loggerConfFile string) error {
  26. cf,err := config.ReadDefault(loggerConfFile)
  27. if (err != nil){
  28. fmt.Println("Failed Read Log Config File '",loggerConfFile,"' :", err.Error())
  29. return err
  30. }
  31. if r,err := cf.Bool("global","debug_log");err != nil{
  32. fmt.Println("Failed Parse Log Config File '",loggerConfFile,"' For 'global.debug_log':", err.Error())
  33. return err
  34. }else{
  35. LoggerConf.debug_log = r
  36. }
  37. if r,err := cf.String("global","log_dir");err != nil{
  38. fmt.Println("Failed Parse Log Config File '",loggerConfFile,"' For 'global.log_dir':", err.Error())
  39. return err
  40. }else{
  41. LoggerConf.logdir = Utils.StripSpaceAndQuote(r)
  42. }
  43. if r,err := cf.String("global","time_format");err != nil{
  44. fmt.Println("Failed Parse Log Config File '",loggerConfFile,"' For 'global.time_format':", err.Error())
  45. return err
  46. }else{
  47. LoggerConf.time_format = Utils.StripSpaceAndQuote(r)
  48. }
  49. if r,err := i_LoggerConfig_SingleLogParse(cf,"system");err != nil{
  50. fmt.Println(" (At Log Config File '",loggerConfFile,"')")
  51. return err
  52. }else{
  53. LoggerConf.syslogcfg = r
  54. }
  55. if r,err := i_LoggerConfig_SingleLogParse(cf,"mclauncher.stdout");err != nil{
  56. fmt.Println(" (At Log Config File '",loggerConfFile,"')")
  57. return err
  58. }else{
  59. LoggerConf.mcloutlogcfg = r
  60. }
  61. if r,err := i_LoggerConfig_SingleLogParse(cf,"mclauncher.stderr");err != nil{
  62. fmt.Println(" (At Log Config File '",loggerConfFile,"')")
  63. return err
  64. }else{
  65. LoggerConf.mclerrlogcfg = r
  66. }
  67. if r,err := i_LoggerConfig_SingleLogParse(cf,"ssh");err != nil{
  68. fmt.Println(" (At Log Config File '",loggerConfFile,"')")
  69. return err
  70. }else{
  71. LoggerConf.sshlogcfg = r
  72. }
  73. return nil
  74. }
  75. func i_LoggerConfig_SingleLogParse(cf *config.Config,secname string) (NSMCSL_LoggerConfigSingleFileSection,error){
  76. sfs := NSMCSL_LoggerConfigSingleFileSection{}
  77. if r,err := cf.String(secname,"Filename");err != nil{
  78. fmt.Println("Failed Parse Log Config File For '",secname,".Filename':", err.Error())
  79. return sfs,err
  80. }else{
  81. sfs.Filename = Utils.StripSpaceAndQuote(r)
  82. }
  83. if r,err := cf.Bool(secname,"Compress");err != nil{
  84. fmt.Println("Failed Parse Log Config File For '",secname,".Compress':", err.Error())
  85. return sfs,err
  86. }else{
  87. sfs.Compress = r
  88. }
  89. if r,err := cf.Bool(secname,"LocalTime");err != nil{
  90. fmt.Println("Failed Parse Log Config File For '",secname,".LocalTime':", err.Error())
  91. return sfs,err
  92. }else{
  93. sfs.LocalTime = r
  94. }
  95. if r,err := cf.Int(secname,"MaxAge");err != nil{
  96. fmt.Println("Failed Parse Log Config File For '",secname,".MaxAge':", err.Error())
  97. return sfs,err
  98. }else{
  99. sfs.MaxAge = r
  100. }
  101. if r,err := cf.Int(secname,"MaxSize");err != nil{
  102. fmt.Println("Failed Parse Log Config File For '",secname,".MaxSize':", err.Error())
  103. return sfs,err
  104. }else{
  105. sfs.MaxSize = r
  106. }
  107. if r,err := cf.Int(secname,"MaxBackups");err != nil{
  108. fmt.Println("Failed Parse Log Config File For '",secname,".MaxBackups':", err.Error())
  109. return sfs,err
  110. }else{
  111. sfs.MaxBackups = r
  112. }
  113. return sfs,nil
  114. }