func LoadRestAddr(c *conf.ConfigFile) (string, error) { addr, err := c.GetString("WebFrontend", "addr") if err != nil || addr == "" { addr = "localhost:9898" err = nil } return addr, err }
func LoadLoggers(c *conf.ConfigFile) (loggers []Logger, err error) { var logfile io.Writer logfilename, err := c.GetString("default", "logfile") if err == nil && logfilename != "" { logfile, err = os.OpenFile(logfilename, os.O_WRONLY|os.O_APPEND|os.O_CREATE, 0600) if err != nil { logfile = os.Stderr } } else { logfile = os.Stderr } loggers = make([]Logger, LOGGER_NR_LOGGERS) loggers[LOGGER_WEB], err = loadLogger(logfile, c, "WebFrontend", "[WebFrontend]") if err != nil { loggers = nil return } loggers[LOGGER_ADDPSP], err = loadLogger(logfile, c, "AddPushServiceProvider", "[AddPushServiceProvider]") if err != nil { loggers = nil return } loggers[LOGGER_RMPSP], err = loadLogger(logfile, c, "RemovePushServiceProvider", "[RemovePushServiceProvider]") if err != nil { loggers = nil return } loggers[LOGGER_SUB], err = loadLogger(logfile, c, "Subscribe", "[Subscribe]") if err != nil { loggers = nil return } loggers[LOGGER_UNSUB], err = loadLogger(logfile, c, "Unsubscribe", "[Unsubscribe]") if err != nil { loggers = nil return } loggers[LOGGER_PUSH], err = loadLogger(logfile, c, "Push", "[Push]") if err != nil { loggers = nil return } return }
func loadLogger(writer io.Writer, c *conf.ConfigFile, field string, prefix string) (Logger, error) { var loglevel string var logswitch bool var err error logswitch, err = c.GetBool(field, "log") if err != nil { logswitch = true } if writer == nil { writer = os.Stderr } loglevel, err = c.GetString(field, "loglevel") if err != nil { loglevel = "standard" } var level int if logswitch { switch strings.ToLower(loglevel) { case "standard": level = LOGLEVEL_INFO case "verbose": level = LOGLEVEL_INFO case "debug": level = LOGLEVEL_DEBUG default: level = LOGLEVEL_INFO } } else { level = LOGLEVEL_SILENT } logger := NewLogger(writer, prefix, level) return logger, nil }
func LoadDatabaseConfig(cf *conf.ConfigFile) (*DatabaseConfig, error) { var err error c := new(DatabaseConfig) c.PushServiceManager = GetPushServiceManager() c.Engine, err = cf.GetString("Database", "engine") if err != nil || c.Engine == "" { c.Engine = "redis" } c.Name, err = cf.GetString("Database", "name") if err != nil || c.Name == "" { c.Name = "0" } c.Port, err = cf.GetInt("Database", "port") if err != nil || c.Port <= 0 { c.Port = -1 } c.Host, err = cf.GetString("Database", "host") if err != nil || c.Host == "" { c.Host = "localhost" } c.Password, err = cf.GetString("Database", "password") if err != nil { c.Password = "" } i, e := cf.GetInt("Database", "everysec") c.EverySec = int64(i) if e != nil || c.EverySec <= 60 { c.EverySec = 600 } c.LeastDirty, err = cf.GetInt("Database", "leastdirty") if err != nil || c.LeastDirty < 0 { c.LeastDirty = 10 } c.CacheSize, err = cf.GetInt("Database", "cachesize") if err != nil || c.CacheSize < 0 { c.CacheSize = 1024 } return c, nil }