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.go50
1 files changed, 50 insertions, 0 deletions
diff --git a/pkg/pls/log.go b/pkg/pls/log.go
new file mode 100644
index 00000000..14eb7db0
--- /dev/null
+++ b/pkg/pls/log.go
@@ -0,0 +1,50 @@
+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) {
+ if err != nil {
+ 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)
+}