package main import ( "net/http" "os" "os/signal" "syscall" admin "git.pyer.club/kingecg/gohttpd/admin" "git.pyer.club/kingecg/gohttpd/server" logger "git.pyer.club/kingecg/gologger" ) func main() { logger.Configure(logger.LoggersConfig{ Categories: map[string]logger.LogConfig{ "default": { Level: "debug", Appenders: []string{ "console", }, }, "fat": { Level: "debug", Appenders: []string{ "console", "file", }, }, }, Appenders: map[string]logger.LogAppenderConfig{ "console": { Type: "console", }, "file": { Type: "file", Options: map[string]interface{}{ "file": "./log/fat.log", }, }, }, }) defaultLogger := logger.GetLogger("default") defaultLogger.Info("Listening...") serverMux := server.NewRestMux("/") serverMux.HandleMux(admin.AdminServerMux) go http.ListenAndServe(":8080", serverMux) defaultLogger.Debug("Next") var waiter = make(chan os.Signal, 1) // buffered channel signal.Notify(waiter, syscall.SIGTERM, syscall.SIGINT) // blocks here until there's a signal <-waiter defaultLogger.Info("Listened") }