func (l *GRPCLoggerV2) Fatalf(format string, args ...interface{}) {
	l.log.Fatal().Msgf(format, args...)
}
Fatalf logs to ERROR log. Arguments are handled in the manner of fmt.Printf.
gRPC ensures that all Fatal logs will exit with os.Exit(1).
Implementations may also call os.Exit() with a non-zero exit code.
package loggers
import (
	"fmt"
	"github.com/rs/zerolog"
)
type GRPCLoggerV2 struct {
	log zerolog.Logger
}
func NewGRPCLoggerV2(log zerolog.Logger) *GRPCLoggerV2 {
	return &GRPCLoggerV2{log: log}
}
func (l *GRPCLoggerV2) Info(args ...interface{}) {
	l.log.Info().Msg(fmt.Sprint(args...))
}
func (l *GRPCLoggerV2) Infoln(args ...interface{}) {
	l.Info(args...)
}
func (l *GRPCLoggerV2) Infof(format string, args ...interface{}) {
	l.log.Info().Msgf(format, args...)
}
func (l *GRPCLoggerV2) Warning(args ...interface{}) {
	l.log.Warn().Msg(fmt.Sprint(args...))
}
func (l *GRPCLoggerV2) Warningln(args ...interface{}) {
	l.Warning(args...)
}
func (l *GRPCLoggerV2) Warningf(format string, args ...interface{}) {
	l.log.Warn().Msgf(format, args...)
}
func (l *GRPCLoggerV2) Error(args ...interface{}) {
	l.log.Error().Msg(fmt.Sprint(args...))
}
func (l *GRPCLoggerV2) Errorln(args ...interface{}) {
	l.Error(args...)
}
func (l *GRPCLoggerV2) Errorf(format string, args ...interface{}) {
	l.log.Error().Msgf(format, args...)
}
func (l *GRPCLoggerV2) Fatal(args ...interface{}) {
	l.log.Fatal().Msg(fmt.Sprint(args...))
}
func (l *GRPCLoggerV2) Fatalln(args ...interface{}) {
	l.Fatal(args...)
}