aboutsummaryrefslogtreecommitdiff
path: root/cmd
diff options
context:
space:
mode:
authorMel <einebeere@gmail.com>2022-04-04 14:49:08 +0200
committerMel <einebeere@gmail.com>2022-04-04 14:49:08 +0200
commit3160b53ddfb6773624e96c306aec86ac2e80de31 (patch)
treed3128595aac92ac561cc3277e0f034cde9e093ab /cmd
parent8e8bff65922378c1e7eed752add93972e769978d (diff)
downloadjinx-3160b53ddfb6773624e96c306aec86ac2e80de31.tar.zst
jinx-3160b53ddfb6773624e96c306aec86ac2e80de31.zip
Use zerolog
Diffstat (limited to 'cmd')
-rw-r--r--cmd/bot/main.go39
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
}