summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2023-11-04 15:14:59 +0200
committerPaul Buetow <paul@buetow.org>2023-11-04 15:14:59 +0200
commit4dbf8b4854db75b549f0417ce9654ee286c1adb6 (patch)
tree5b885ce70e624628b5d44984eb2499f12bf44969
parent4df9dfc1e91ca64f553b5d5a76619155531aabd0 (diff)
add syslog logger
-rw-r--r--cmd/gorum/main.go7
-rw-r--r--internal/config/config.go1
-rw-r--r--internal/run.go15
3 files changed, 19 insertions, 4 deletions
diff --git a/cmd/gorum/main.go b/cmd/gorum/main.go
index 72b0470..80827e9 100644
--- a/cmd/gorum/main.go
+++ b/cmd/gorum/main.go
@@ -4,7 +4,6 @@ import (
"context"
"flag"
"fmt"
- "log"
"os"
"os/signal"
"syscall"
@@ -12,7 +11,7 @@ import (
"codeberg.org/snonux/gorum/internal"
)
-const versionStr = "v0.0.0"
+const versionStr = "v0.0.3"
func main() {
configFile := flag.String("cfg", "/etc/gorum.json", "The config file")
@@ -30,11 +29,10 @@ func main() {
defer cancel()
if err := internal.Run(ctx, *configFile, *loopIntervalS); err != nil {
- log.Fatal(err)
+ panic(err)
}
<-ctx.Done()
- log.Println("good bye!")
}
func contextWithSignal() (context.Context, context.CancelFunc) {
@@ -44,6 +42,7 @@ func contextWithSignal() (context.Context, context.CancelFunc) {
ch := make(chan os.Signal, 1)
signal.Notify(ch, os.Interrupt, syscall.SIGTERM, syscall.SIGINT)
<-ch
+ fmt.Println("Received shutdown signal")
cancel()
}()
diff --git a/internal/config/config.go b/internal/config/config.go
index f04aa57..09ccb7e 100644
--- a/internal/config/config.go
+++ b/internal/config/config.go
@@ -25,6 +25,7 @@ func (n Node) Address() string {
type Config struct {
StateDir string
+ LogToSyslog bool `json:"LogToSyslog,omitempty"`
ScoreFile string
WinnerFile string
Address string
diff --git a/internal/run.go b/internal/run.go
index 7a51f6c..2439928 100644
--- a/internal/run.go
+++ b/internal/run.go
@@ -2,6 +2,8 @@ package internal
import (
"context"
+ "log"
+ "log/syslog"
"codeberg.org/snonux/gorum/internal/client"
"codeberg.org/snonux/gorum/internal/config"
@@ -18,11 +20,24 @@ func Run(ctx context.Context, configFile string, loopIntervalS int64) error {
conf.LoopIntervalS = loopIntervalS
}
+ if conf.LogToSyslog {
+ syslogWriter, err := syslog.New(syslog.LOG_DAEMON, "gorum")
+ if err != nil {
+ return err
+ }
+ log.SetOutput(syslogWriter)
+
+ }
+
+ log.Println("Starting everything up!")
+
quo := quorum.New(conf)
myVoteCh := quo.Start(ctx)
server.Start(ctx, conf, quo)
client.Start(ctx, conf, myVoteCh)
<-ctx.Done()
+ log.Println("Good bye and have a nice day!")
+
return nil
}