diff options
author | Ben Morrison <ben@gbmor.dev> | 2020-05-06 01:06:11 -0400 |
---|---|---|
committer | Ben Morrison <ben@gbmor.dev> | 2020-05-06 01:06:11 -0400 |
commit | 860d648785e96ec8a23c16ad5c1ccbe16850cb1e (patch) | |
tree | dc6faf353fba399cc5c515fb3484ef2ade864d8b /main.go | |
parent | 9274eef9ed55685e091ce379b3690bf8eb8fbef4 (diff) | |
download | api-860d648785e96ec8a23c16ad5c1ccbe16850cb1e.tar.gz |
using file logging and catching SIGINT to cleanly shut down
Diffstat (limited to 'main.go')
-rw-r--r-- | main.go | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/main.go b/main.go index 079fd98..5662388 100644 --- a/main.go +++ b/main.go @@ -3,12 +3,25 @@ package main import ( "log" "net/http" + "os" + "os/signal" "time" ) func main() { - mux := http.NewServeMux() + initLogging() + + sigC := make(chan os.Signal, 1) + signal.Notify(sigC, os.Interrupt) + go func() { + for range sigC { + log.Printf("^C Caught. Shutting down ...") + logChan <- struct{}{} + os.Exit(1) + } + }() + mux := http.NewServeMux() mux.HandleFunc("/", validateRequest) server := &http.Server{ @@ -18,5 +31,8 @@ func main() { WriteTimeout: 10 * time.Second, } - log.Fatalf("%s", server.ListenAndServe()) + log.Println("Starting up") + log.Printf("Listening on %s\n", server.Addr) + + log.Fatalf("%s", server.ListenAndServe().Error()) } |