diff --git a/.gitignore b/.gitignore index 899ead2..d153e65 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,4 @@ **/model/tables.go bindata.go +log +parser diff --git a/logger.go b/logger.go new file mode 100644 index 0000000..46dee58 --- /dev/null +++ b/logger.go @@ -0,0 +1,30 @@ +package main + +import ( + "os" + "os/signal" + "syscall" + + "git.fuyu.moe/Fuyu/flog" +) + +func setLogger() { + f, err := os.OpenFile(`log`, os.O_CREATE|os.O_APPEND|os.O_WRONLY, 0644) + if err != nil { + panic(err) + } + + flog.Output = f + flog.MinLevel = flog.LevelInfo + flog.MinStackLevel = flog.LevelWarning +} + +func catchSignals() { + sc := make(chan os.Signal, 1) + signal.Notify(sc, syscall.SIGHUP, syscall.SIGINT, syscall.SIGTERM, syscall.SIGQUIT) + go func() { + s := <-sc + flog.Info(`Stopping, signal: `, s) + os.Exit(0) + }() +} diff --git a/main.go b/main.go index 333deaf..9164a70 100644 --- a/main.go +++ b/main.go @@ -9,6 +9,7 @@ import ( "time" "git.fuyu.moe/5GPowerQuality/parser/internal/model" + "git.fuyu.moe/Fuyu/flog" "git.ultraware.nl/NiseVoid/qb/qbdb" "git.ultraware.nl/NiseVoid/qb/qf" "golang.org/x/net/html/charset" @@ -17,6 +18,17 @@ import ( var db *qbdb.DB func main() { + defer func() { + v := recover() + if v != nil { + flog.Critical(`panic: `, v) + } + }() + setLogger() + + flog.Info(`Starting`) + catchSignals() + initDB() start := GetStartDate()