phuslog

package module
v2.0.0-rc.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 13, 2022 License: Apache-2.0 Imports: 3 Imported by: 0

Documentation

Overview

Package phuslog provides a small adapter required to use phuslog in logging gRPC middlewares. Please see examples for examples of use.

Example (InitializationWithCustomLevels)
package main

import (
	grpcphuslog "github.com/grpc-ecosystem/go-grpc-middleware/providers/phuslog/v2"
	"github.com/phuslu/log"
	"google.golang.org/grpc"

	middleware "github.com/grpc-ecosystem/go-grpc-middleware/v2"
	"github.com/grpc-ecosystem/go-grpc-middleware/v2/interceptors/logging"
)

var customFunc logging.CodeToLevel

func main() {
	// Logger is used, allowing pre-definition of certain fields by the user.
	logger := log.DefaultLogger.GrpcGateway()
	// Shared options for the logger, with a custom gRPC code to log level function.
	opts := []logging.Option{
		logging.WithLevels(customFunc),
	}
	// Create a server, make sure we put the tags context before everything else.
	_ = grpc.NewServer(
		middleware.WithUnaryServerChain(
			logging.UnaryServerInterceptor(grpcphuslog.InterceptorLogger(logger), opts...),
		),
		middleware.WithStreamServerChain(
			logging.StreamServerInterceptor(grpcphuslog.InterceptorLogger(logger), opts...),
		),
	)
}
Output:

Example (InitializationWithDurationFieldOverride)
package main

import (
	grpcphuslog "github.com/grpc-ecosystem/go-grpc-middleware/providers/phuslog/v2"
	"github.com/phuslu/log"
	"google.golang.org/grpc"

	middleware "github.com/grpc-ecosystem/go-grpc-middleware/v2"
	"github.com/grpc-ecosystem/go-grpc-middleware/v2/interceptors/logging"
)

var customDurationToFields logging.DurationToFields

func main() {
	// Logger is used, allowing pre-definition of certain fields by the user.
	logger := log.DefaultLogger.GrpcGateway()
	// Shared options for the logger, with a custom duration to log field function.
	opts := []logging.Option{
		logging.WithDurationField(customDurationToFields),
	}
	// Create a server, make sure we put the tags context before everything else.
	_ = grpc.NewServer(
		middleware.WithUnaryServerChain(
			logging.UnaryServerInterceptor(grpcphuslog.InterceptorLogger(logger), opts...),
		),
		middleware.WithStreamServerChain(
			logging.StreamServerInterceptor(grpcphuslog.InterceptorLogger(logger), opts...),
		),
	)
}
Output:

Index

Examples

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Logger

type Logger struct {
	log.GrpcGatewayLogger
}

Logger is a phuslog logging adapter compatible with logging middlewares.

func InterceptorLogger

func InterceptorLogger(logger log.GrpcGatewayLogger) *Logger

InterceptorLogger is a phuslog.Logger to Logger adapter.

func (*Logger) Log

func (l *Logger) Log(lvl logging.Level, msg string)

Log implements the logging.Logger interface.

func (*Logger) With

func (l *Logger) With(fields ...string) logging.Logger

With implements the logging.Logger interface.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL