diff options
| author | Mel <einebeere@gmail.com> | 2022-04-04 14:49:08 +0200 |
|---|---|---|
| committer | Mel <einebeere@gmail.com> | 2022-04-04 14:49:08 +0200 |
| commit | 3160b53ddfb6773624e96c306aec86ac2e80de31 (patch) | |
| tree | d3128595aac92ac561cc3277e0f034cde9e093ab /cmd | |
| parent | 8e8bff65922378c1e7eed752add93972e769978d (diff) | |
| download | jinx-3160b53ddfb6773624e96c306aec86ac2e80de31.tar.zst jinx-3160b53ddfb6773624e96c306aec86ac2e80de31.zip | |
Use zerolog
Diffstat (limited to 'cmd')
| -rw-r--r-- | cmd/bot/main.go | 39 |
1 files changed, 32 insertions, 7 deletions
diff --git a/cmd/bot/main.go b/cmd/bot/main.go index 0f241c9..512b60b 100644 --- a/cmd/bot/main.go +++ b/cmd/bot/main.go @@ -1,31 +1,56 @@ package main import ( + "fmt" "jinx/pkg/bot" - "log" "os" "os/signal" "syscall" + "time" + + "github.com/rs/zerolog" ) func main() { + logger, err := createLogger() + if err != nil { + panic(err) + } + token := os.Getenv("BOT_TOKEN") if token == "" { - log.Fatal("`BOT_TOKEN` is not set.") + logger.Fatal().Msg("`BOT_TOKEN` is not set.") } - b, err := bot.Start(token) - if err != nil { - panic(err) + logger.Info().Msg("starting jinx!") + + b := bot.NewBot(token, logger) + + if err := b.Start(); err != nil { + logger.Fatal().Err(err).Msg("error starting jinx") } c := make(chan os.Signal, 2) signal.Notify(c, syscall.SIGINT, syscall.SIGTERM) s := <-c - log.Printf("received signal: %s! stopping...", s) + logger.Info().Msgf("received signal: %s! stopping...", s) if err := b.Stop(); err != nil { - panic(err) + logger.Fatal().Err(err).Msg("error stopping jinx") + } +} + +func createLogger() (*zerolog.Logger, error) { + timestamp := time.Now().Format(time.RFC3339) + logFileName := fmt.Sprintf("log/jinx-%s.log", timestamp) + logFile, err := os.OpenFile(logFileName, os.O_RDWR|os.O_CREATE|os.O_APPEND, 0666) + if err != nil { + return nil, err } + + stdout := zerolog.ConsoleWriter{Out: os.Stdout, TimeFormat: time.RFC3339} + + logger := zerolog.New(zerolog.MultiLevelWriter(stdout, logFile)).With().Timestamp().Logger() + return &logger, nil } |
