package Logger import ( "github.com/larspensjo/config" "fmt" "git.swzry.com/NSMCServerLauncher/Utils" ) var LoggerConf NSMCSL_LoggerConf type NSMCSL_LoggerConfigSingleFileSection struct { Filename string MaxSize int MaxAge int MaxBackups int LocalTime bool Compress bool } type NSMCSL_LoggerConf struct { logdir string debug_log bool time_format string syslogcfg NSMCSL_LoggerConfigSingleFileSection mcloutlogcfg NSMCSL_LoggerConfigSingleFileSection mclerrlogcfg NSMCSL_LoggerConfigSingleFileSection sshlogcfg NSMCSL_LoggerConfigSingleFileSection } func LoadLoggerConfig(loggerConfFile string) error { cf,err := config.ReadDefault(loggerConfFile) if (err != nil){ fmt.Println("Failed Read Log Config File '",loggerConfFile,"' :", err.Error()) return err } if r,err := cf.Bool("global","debug_log");err != nil{ fmt.Println("Failed Parse Log Config File '",loggerConfFile,"' For 'global.debug_log':", err.Error()) return err }else{ LoggerConf.debug_log = r } if r,err := cf.String("global","log_dir");err != nil{ fmt.Println("Failed Parse Log Config File '",loggerConfFile,"' For 'global.log_dir':", err.Error()) return err }else{ LoggerConf.logdir = Utils.StripSpaceAndQuote(r) } if r,err := cf.String("global","time_format");err != nil{ fmt.Println("Failed Parse Log Config File '",loggerConfFile,"' For 'global.time_format':", err.Error()) return err }else{ LoggerConf.time_format = Utils.StripSpaceAndQuote(r) } if r,err := i_LoggerConfig_SingleLogParse(cf,"system");err != nil{ fmt.Println(" (At Log Config File '",loggerConfFile,"')") return err }else{ LoggerConf.syslogcfg = r } if r,err := i_LoggerConfig_SingleLogParse(cf,"mclauncher.stdout");err != nil{ fmt.Println(" (At Log Config File '",loggerConfFile,"')") return err }else{ LoggerConf.mcloutlogcfg = r } if r,err := i_LoggerConfig_SingleLogParse(cf,"mclauncher.stderr");err != nil{ fmt.Println(" (At Log Config File '",loggerConfFile,"')") return err }else{ LoggerConf.mclerrlogcfg = r } if r,err := i_LoggerConfig_SingleLogParse(cf,"ssh");err != nil{ fmt.Println(" (At Log Config File '",loggerConfFile,"')") return err }else{ LoggerConf.sshlogcfg = r } return nil } func i_LoggerConfig_SingleLogParse(cf *config.Config,secname string) (NSMCSL_LoggerConfigSingleFileSection,error){ sfs := NSMCSL_LoggerConfigSingleFileSection{} if r,err := cf.String(secname,"Filename");err != nil{ fmt.Println("Failed Parse Log Config File For '",secname,".Filename':", err.Error()) return sfs,err }else{ sfs.Filename = Utils.StripSpaceAndQuote(r) } if r,err := cf.Bool(secname,"Compress");err != nil{ fmt.Println("Failed Parse Log Config File For '",secname,".Compress':", err.Error()) return sfs,err }else{ sfs.Compress = r } if r,err := cf.Bool(secname,"LocalTime");err != nil{ fmt.Println("Failed Parse Log Config File For '",secname,".LocalTime':", err.Error()) return sfs,err }else{ sfs.LocalTime = r } if r,err := cf.Int(secname,"MaxAge");err != nil{ fmt.Println("Failed Parse Log Config File For '",secname,".MaxAge':", err.Error()) return sfs,err }else{ sfs.MaxAge = r } if r,err := cf.Int(secname,"MaxSize");err != nil{ fmt.Println("Failed Parse Log Config File For '",secname,".MaxSize':", err.Error()) return sfs,err }else{ sfs.MaxSize = r } if r,err := cf.Int(secname,"MaxBackups");err != nil{ fmt.Println("Failed Parse Log Config File For '",secname,".MaxBackups':", err.Error()) return sfs,err }else{ sfs.MaxBackups = r } return sfs,nil }