Skip to content

Commit e2a21fc

Browse files
committed
refactor logging
1 parent e1e48b1 commit e2a21fc

File tree

1 file changed

+41
-2
lines changed

1 file changed

+41
-2
lines changed

state/state.go

Lines changed: 41 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import (
1212
"net/http"
1313
"os"
1414
"path/filepath"
15+
"strings"
1516
"sync"
1617
"time"
1718

@@ -32,6 +33,7 @@ import (
3233
"github.com/onflow/rosetta/log"
3334
"github.com/onflow/rosetta/model"
3435
"github.com/onflow/rosetta/process"
36+
"github.com/rs/zerolog"
3537
"golang.org/x/crypto/openpgp"
3638
"golang.org/x/crypto/openpgp/armor"
3739
"google.golang.org/grpc/codes"
@@ -636,8 +638,7 @@ func (i *Indexer) runConsensusFollower(ctx context.Context) {
636638
sporkDir := i.Chain.PathFor(spork.String())
637639
i.downloadRootState(ctx, spork, sporkDir)
638640
dbDir := filepath.Join(sporkDir, "consensus")
639-
logger := log.Badger{Prefix: "consensus"}
640-
pebbleDB, err := pebblestorage.SafeOpen(logger, dbDir)
641+
pebbleDB, err := pebblestorage.SafeOpen(NewPrefixedLogger("consensus"), dbDir)
641642
if err != nil {
642643
log.Fatalf("Failed to open consensus database at %s: %s", dbDir, err)
643644
}
@@ -766,3 +767,41 @@ type stateSnapshotHeader struct {
766767
type stateSnapshotSeal struct {
767768
BlockID string
768769
}
770+
771+
// NewPrefixedLogger creates a zerolog.Logger with a given prefix.
772+
// It respects LOG_LEVEL and JSON_LOGS env vars like the zap setup.
773+
func NewPrefixedLogger(prefix string) zerolog.Logger {
774+
// decide writer: console vs JSON
775+
var w zerolog.LevelWriter
776+
jsonLogs := true
777+
switch strings.ToLower(os.Getenv("JSON_LOGS")) {
778+
case "", "disable", "disabled", "false", "off", "0":
779+
jsonLogs = false
780+
}
781+
if jsonLogs {
782+
w = os.Stderr // JSON is default for zerolog
783+
} else {
784+
cw := zerolog.NewConsoleWriter(func(w *zerolog.ConsoleWriter) {
785+
w.Out = os.Stderr
786+
w.TimeFormat = zerolog.TimeFormatUnix
787+
})
788+
w = cw
789+
}
790+
791+
// set level from LOG_LEVEL
792+
levelStr := strings.ToLower(os.Getenv("LOG_LEVEL"))
793+
if levelStr == "" {
794+
levelStr = "info"
795+
}
796+
level, err := zerolog.ParseLevel(levelStr)
797+
if err != nil {
798+
level = zerolog.InfoLevel
799+
}
800+
zerolog.SetGlobalLevel(level)
801+
802+
// build logger with prefix and timestamp
803+
return zerolog.New(w).With().
804+
Timestamp().
805+
Str("prefix", prefix).
806+
Logger()
807+
}

0 commit comments

Comments
 (0)