| package logtree | 
 |  | 
 | import "google.golang.org/grpc/grpclog" | 
 |  | 
 | // GRPCify turns a LeveledLogger into a go-grpc compatible logger. | 
 | func GRPCify(logger LeveledLogger) grpclog.LoggerV2 { | 
 | 	lp, ok := logger.(*leveledPublisher) | 
 | 	if !ok { | 
 | 		// Fail fast, as this is a programming error. | 
 | 		panic("Expected *leveledPublisher in LeveledLogger from supervisor") | 
 | 	} | 
 |  | 
 | 	lp2 := *lp | 
 | 	lp2.depth += 1 | 
 |  | 
 | 	return &leveledGRPCV2{ | 
 | 		lp: &lp2, | 
 | 	} | 
 | } | 
 |  | 
 | type leveledGRPCV2 struct { | 
 | 	lp *leveledPublisher | 
 | } | 
 |  | 
 | func (g *leveledGRPCV2) Info(args ...interface{}) { | 
 | 	g.lp.Info(args...) | 
 | } | 
 |  | 
 | func (g *leveledGRPCV2) Infoln(args ...interface{}) { | 
 | 	g.lp.Info(args...) | 
 | } | 
 |  | 
 | func (g *leveledGRPCV2) Infof(format string, args ...interface{}) { | 
 | 	g.lp.Infof(format, args...) | 
 | } | 
 |  | 
 | func (g *leveledGRPCV2) Warning(args ...interface{}) { | 
 | 	g.lp.Warning(args...) | 
 | } | 
 |  | 
 | func (g *leveledGRPCV2) Warningln(args ...interface{}) { | 
 | 	g.lp.Warning(args...) | 
 | } | 
 |  | 
 | func (g *leveledGRPCV2) Warningf(format string, args ...interface{}) { | 
 | 	g.lp.Warningf(format, args...) | 
 | } | 
 |  | 
 | func (g *leveledGRPCV2) Error(args ...interface{}) { | 
 | 	g.lp.Error(args...) | 
 | } | 
 |  | 
 | func (g *leveledGRPCV2) Errorln(args ...interface{}) { | 
 | 	g.lp.Error(args...) | 
 | } | 
 |  | 
 | func (g *leveledGRPCV2) Errorf(format string, args ...interface{}) { | 
 | 	g.lp.Errorf(format, args...) | 
 | } | 
 |  | 
 | func (g *leveledGRPCV2) Fatal(args ...interface{}) { | 
 | 	g.lp.Fatal(args...) | 
 | } | 
 |  | 
 | func (g *leveledGRPCV2) Fatalln(args ...interface{}) { | 
 | 	g.lp.Fatal(args...) | 
 | } | 
 |  | 
 | func (g *leveledGRPCV2) Fatalf(format string, args ...interface{}) { | 
 | 	g.lp.Fatalf(format, args...) | 
 | } | 
 |  | 
 | func (g *leveledGRPCV2) V(l int) bool { | 
 | 	return g.lp.V(VerbosityLevel(l)).Enabled() | 
 | } |