nats: Don't enable debug and trace logging by default

Only enable trace and/or debug logging when the outer logger has the
log level set accordingly. Even when the though the messages where not
really logged the nats service wasted quite some cycles especially in
the trace log related code path.

Related issue: #716
This commit is contained in:
Ralf Haferkamp
2025-05-12 13:14:06 +02:00
parent abd6773fbd
commit 4d52257558
2 changed files with 7 additions and 3 deletions

View File

@@ -78,7 +78,7 @@ func Server(cfg *config.Config) *cli.Command {
}
natsServer, err := nats.NewNATSServer(
ctx,
logging.NewLogWrapper(logger),
logger,
nats.Host(cfg.Nats.Host),
nats.Port(cfg.Nats.Port),
nats.ClusterID(cfg.Nats.ClusterID),

View File

@@ -5,6 +5,9 @@ import (
"time"
nserver "github.com/nats-io/nats-server/v2/server"
"github.com/opencloud-eu/opencloud/pkg/log"
"github.com/opencloud-eu/opencloud/services/nats/pkg/logging"
"github.com/rs/zerolog"
)
var NATSListenAndServeLoopTimer = 1 * time.Second
@@ -15,7 +18,7 @@ type NATSServer struct {
}
// NatsOption configures the new NATSServer instance
func NewNATSServer(ctx context.Context, logger nserver.Logger, opts ...NatsOption) (*NATSServer, error) {
func NewNATSServer(ctx context.Context, logger log.Logger, opts ...NatsOption) (*NATSServer, error) {
natsOpts := &nserver.Options{}
for _, o := range opts {
@@ -32,7 +35,8 @@ func NewNATSServer(ctx context.Context, logger nserver.Logger, opts ...NatsOptio
return nil, err
}
server.SetLoggerV2(logger, true, true, false)
nLogger := logging.NewLogWrapper(logger)
server.SetLoggerV2(nLogger, logger.GetLevel() <= zerolog.DebugLevel, logger.GetLevel() <= zerolog.TraceLevel, false)
return &NATSServer{
ctx: ctx,