summaryrefslogtreecommitdiff
path: root/pkg/pls/log.go
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/pls/log.go')
-rw-r--r--pkg/pls/log.go37
1 files changed, 37 insertions, 0 deletions
diff --git a/pkg/pls/log.go b/pkg/pls/log.go
index 41efcbf..14eb7db 100644
--- a/pkg/pls/log.go
+++ b/pkg/pls/log.go
@@ -3,7 +3,9 @@ package pls
import (
"context"
+ "github.com/rs/zerolog"
"github.com/xlgmokha/x/pkg/log"
+ "google.golang.org/grpc"
)
func LogError(ctx context.Context, err error) {
@@ -11,3 +13,38 @@ func LogError(ctx context.Context, err error) {
log.WithFields(ctx, log.Fields{"error": err})
}
}
+
+func LogErrorNow(ctx context.Context, err error) {
+ defer FlushLog(ctx)
+
+ LogError(ctx, err)
+}
+
+func LogGRPC(logger *zerolog.Logger) grpc.UnaryServerInterceptor {
+ return func(ctx context.Context, req any, info *grpc.UnaryServerInfo, handler grpc.UnaryHandler) (resp any, err error) {
+ ctx = logger.WithContext(ctx)
+
+ defer FlushLog(ctx)
+ return handler(ctx, req)
+ }
+}
+
+func LogGRPCStream(logger *zerolog.Logger) grpc.StreamServerInterceptor {
+ return func(srv any, ss grpc.ServerStream, info *grpc.StreamServerInfo, handler grpc.StreamHandler) error {
+ ctx := logger.WithContext(ss.Context())
+ log.WithFields(ctx, log.Fields{"info": info})
+
+ defer FlushLog(ctx)
+ return handler(srv, ss)
+ }
+}
+
+func FlushLog(ctx context.Context) {
+ zerolog.Ctx(ctx).Print()
+}
+
+func LogNow(ctx context.Context, fields log.Fields) {
+ defer FlushLog(ctx)
+
+ log.WithFields(ctx, fields)
+}