func main() { defer func() { if res := recover(); res != nil { content := fmt.Sprintf("Crashed with error: %v", res) for i := 1; ; i += 1 { _, file, line, ok := runtime.Caller(i) if !ok { break } else { content += "\n" } content += fmt.Sprintf("%v %v", file, line) } fmt.Println(content) } }() models.InitModels() mode, _ := models.Cfg.GetValue("app", "run_mode") var isPro bool = true if mode == "dev" { log.SetOutputLevel(log.Ldebug) isPro = false } log.Info("run in " + mode + " mode") f, err := os.Create("./website.log") if err != nil { fmt.Println(err) return } log.SetOutput(io.MultiWriter(f, os.Stdout)) xweb.SetLogger(log.Std) actions.InitApp() // Register routers. xweb.AddAction(&actions.HomeAction{}) xweb.AutoAction(&actions.DocsAction{}, &actions.LinkAction{}) xweb.AddTmplVars(&xweb.T{ "i18n": i18n.Tr, "IsPro": isPro, "AppVer": APP_VER, "XwebVer": xweb.Version, "GoVer": strings.Trim(runtime.Version(), "go"), }) port, _ := models.Cfg.GetValue("app", "http_port") usessl, _ := models.Cfg.GetValue("app", "ssl") if usessl == "true" { tlsCfg, _ := xweb.SimpleTLSConfig("cert.pem", "key.pem") xweb.RunTLS(fmt.Sprintf(":%v", port), tlsCfg) } else { xweb.Run(fmt.Sprintf(":%v", port)) } }
func InitApp() { initTemplates() initLocales() watcher, err := fsnotify.NewWatcher() if err != nil { panic("Failed start app watcher: " + err.Error()) } go func() { for { select { case event := <-watcher.Event: switch filepath.Ext(event.Name) { case ".ini": log.Info(event) if err := i18n.ReloadLangs(); err != nil { log.Error("Conf Reload: ", err) } log.Info("Config Reloaded") case ".json": if event.Name == CompressConfPath { log.Info("Beego Compress Reloaded") } } } } }() if err := watcher.WatchFlags("conf", fsnotify.FSN_MODIFY); err != nil { log.Error(err) } }
func main() { models.InitModels() mode, _ := models.Cfg.GetValue("app", "run_mode") var isPro bool = true if mode == "dev" { log.SetOutputLevel(log.Ldebug) isPro = false } log.Info("run in " + mode + " mode") f, err := os.Create("./website.log") if err != nil { fmt.Println(err) return } log.SetOutput(io.MultiWriter(f, os.Stdout)) xweb.SetLogger(log.Std) actions.InitApp() // Register routers. xweb.AddAction(&actions.HomeAction{}) xweb.AutoAction(&actions.DocsAction{}, &actions.LinkAction{}) xweb.AddTmplVars(&xweb.T{ "i18n": i18n.Tr, "IsPro": isPro, "AppVer": APP_VER, "XwebVer": xweb.Version, "GoVer": strings.Trim(runtime.Version(), "go"), }) port, _ := models.Cfg.GetValue("app", "http_port") usessl, _ := models.Cfg.GetValue("app", "ssl") if usessl == "true" { tlsCfg, _ := xweb.SimpleTLSConfig("cert.pem", "key.pem") xweb.RunTLS(fmt.Sprintf(":%v", port), tlsCfg) } else { xweb.Run(fmt.Sprintf(":%v", port)) } }