wspr: Use the global logger in the vlog package for logging.

This simplifies the code but doesn't change behavior.  I'm also
going to get rid of the code that attaches a logger to the runtime
which nobody is using effectively now.

Change-Id: Iff4c377b573ceeeec8f35056a9b55b5c12812ff8
diff --git a/services/wsprd/app/app.go b/services/wsprd/app/app.go
index 1bb959f..c3d1a93 100644
--- a/services/wsprd/app/app.go
+++ b/services/wsprd/app/app.go
@@ -254,11 +254,6 @@
 	}
 }
 
-// GetLogger returns a Veyron logger to use.
-func (c *Controller) GetLogger() vlog.Logger {
-	return veyron2.GetLogger(c.ctx)
-}
-
 // RT returns the runtime of the app.
 func (c *Controller) Context() *context.T {
 	return c.ctx
@@ -274,7 +269,7 @@
 
 // Cleanup cleans up any outstanding rpcs.
 func (c *Controller) Cleanup() {
-	c.GetLogger().VI(0).Info("Cleaning up controller")
+	vlog.VI(0).Info("Cleaning up controller")
 	c.Lock()
 	defer c.Unlock()
 
@@ -412,7 +407,7 @@
 		request.stream.end()
 		return
 	}
-	c.GetLogger().Errorf("close called on non-existent call: %v", id)
+	vlog.Errorf("close called on non-existent call: %v", id)
 }
 
 func (c *Controller) maybeCreateServer(serverId uint32) (*server.Server, error) {
@@ -449,7 +444,7 @@
 		w.Error(verror2.Convert(verror2.Internal, nil, err))
 	}
 
-	c.GetLogger().VI(2).Infof("serving under name: %q", serveRequest.Name)
+	vlog.VI(2).Infof("serving under name: %q", serveRequest.Name)
 
 	if err := server.Serve(serveRequest.Name); err != nil {
 		w.Error(verror2.Convert(verror2.Internal, nil, err))
@@ -481,7 +476,7 @@
 	server := c.flowMap[id]
 	c.Unlock()
 	if server == nil {
-		c.GetLogger().Errorf("unexpected result from JavaScript. No channel "+
+		vlog.Errorf("unexpected result from JavaScript. No channel "+
 			"for MessageId: %d exists. Ignoring the results.", id)
 		//Ignore unknown responses that don't belong to any channel
 		return
@@ -496,7 +491,7 @@
 	server := c.flowMap[id]
 	c.Unlock()
 	if server == nil {
-		c.GetLogger().Errorf("unexpected result from JavaScript. No channel "+
+		vlog.Errorf("unexpected result from JavaScript. No channel "+
 			"for MessageId: %d exists. Ignoring the results.", id)
 		//Ignore unknown responses that don't belong to any channel
 		return
@@ -584,7 +579,7 @@
 	server := c.flowMap[id]
 	c.Unlock()
 	if server == nil {
-		c.GetLogger().Errorf("unexpected result from JavaScript. No channel "+
+		vlog.Errorf("unexpected result from JavaScript. No channel "+
 			"for MessageId: %d exists. Ignoring the results.", id)
 		//Ignore unknown responses that don't belong to any channel
 		return
@@ -598,7 +593,7 @@
 	if err := lib.VomDecode(data, &msg); err != nil {
 		return nil, err
 	}
-	c.GetLogger().VI(2).Infof("VeyronRPC: %s.%s(..., streaming=%v)", msg.Name, msg.Method, msg.IsStreaming)
+	vlog.VI(2).Infof("VeyronRPC: %s.%s(..., streaming=%v)", msg.Name, msg.Method, msg.IsStreaming)
 	return &msg, nil
 }
 
@@ -620,7 +615,7 @@
 		return
 	}
 
-	c.GetLogger().VI(2).Infof("requesting Signature for %q", request.Name)
+	vlog.VI(2).Infof("requesting Signature for %q", request.Name)
 	sig, err := c.getSignature(ctx, request.Name)
 	if err != nil {
 		w.Error(err)
diff --git a/services/wsprd/app/messaging.go b/services/wsprd/app/messaging.go
index 72bb89e..c23e0ef 100644
--- a/services/wsprd/app/messaging.go
+++ b/services/wsprd/app/messaging.go
@@ -159,8 +159,8 @@
 }
 
 // FormatAsVerror formats an error as a verror.
-// This also logs the error to the given logger.
-func FormatAsVerror(err error, logger vlog.Logger) error {
+// This also logs the error.
+func FormatAsVerror(err error) error {
 	verr := verror.Convert(verror.Unknown, nil, err)
 
 	// Also log the error but write internal errors at a more severe log level
@@ -186,7 +186,7 @@
 	if verror.Is(verr, verror.Internal.ID) {
 		logLevel = 2
 	}
-	logger.VI(logLevel).Info(logErr)
+	vlog.VI(logLevel).Info(logErr)
 
 	return verr
 }
diff --git a/services/wsprd/browspr/browspr.go b/services/wsprd/browspr/browspr.go
index 9be9fb5..08dc3c1 100644
--- a/services/wsprd/browspr/browspr.go
+++ b/services/wsprd/browspr/browspr.go
@@ -25,7 +25,6 @@
 	accountManager   *account.AccountManager
 	postMessage      func(instanceId int32, ty, msg string)
 	principalManager *principal.PrincipalManager
-	logger           vlog.Logger
 
 	// Locks activeInstances
 	mu              sync.Mutex
@@ -50,7 +49,6 @@
 		namespaceRoots:  wsNamespaceRoots,
 		postMessage:     postMessage,
 		ctx:             ctx,
-		logger:          veyron2.GetLogger(ctx),
 		activeInstances: make(map[int32]*pipe),
 	}
 
diff --git a/services/wsprd/browspr/pipe.go b/services/wsprd/browspr/pipe.go
index 3725333..8a10dd5 100644
--- a/services/wsprd/browspr/pipe.go
+++ b/services/wsprd/browspr/pipe.go
@@ -5,6 +5,7 @@
 	"fmt"
 
 	"v.io/core/veyron2/options"
+	"v.io/core/veyron2/vlog"
 	"v.io/wspr/veyron/services/wsprd/app"
 	"v.io/wspr/veyron/services/wsprd/lib"
 )
@@ -30,16 +31,16 @@
 		// TODO(nlacasse, bjornick): This code should go away once we
 		// start requiring authentication.  At that point, we should
 		// just return an error to the client.
-		b.logger.Errorf("No principal associated with origin %v, creating a new principal with self-signed blessing from browspr: %v", origin, err)
+		vlog.Errorf("No principal associated with origin %v, creating a new principal with self-signed blessing from browspr: %v", origin, err)
 
 		dummyAccount, err := b.principalManager.DummyAccount()
 		if err != nil {
-			b.logger.Errorf("principalManager.DummyAccount() failed: %v", err)
+			vlog.Errorf("principalManager.DummyAccount() failed: %v", err)
 			return nil
 		}
 
 		if err := b.accountManager.AssociateAccount(origin, dummyAccount, nil); err != nil {
-			b.logger.Errorf("accountManager.AssociateAccount(%v, %v, %v) failed: %v", origin, dummyAccount, nil, err)
+			vlog.Errorf("accountManager.AssociateAccount(%v, %v, %v) failed: %v", origin, dummyAccount, nil, err)
 			return nil
 		}
 		p, err = b.accountManager.LookupPrincipal(origin)
@@ -50,7 +51,7 @@
 
 	pipe.controller, err = app.NewController(b.ctx, pipe.createWriter, b.listenSpec, b.namespaceRoots, options.RuntimePrincipal{p})
 	if err != nil {
-		b.logger.Errorf("Could not create controller: %v", err)
+		vlog.Errorf("Could not create controller: %v", err)
 		return nil
 	}
 
@@ -65,7 +66,7 @@
 }
 
 func (p *pipe) cleanup() {
-	p.browspr.logger.VI(0).Info("Cleaning up pipe")
+	vlog.VI(0).Info("Cleaning up pipe")
 	p.controller.Cleanup()
 }
 
diff --git a/services/wsprd/browspr/writer.go b/services/wsprd/browspr/writer.go
index a037f16..b956ce6 100644
--- a/services/wsprd/browspr/writer.go
+++ b/services/wsprd/browspr/writer.go
@@ -22,5 +22,5 @@
 }
 
 func (w *postMessageWriter) Error(err error) {
-	w.Send(lib.ResponseError, app.FormatAsVerror(err, w.p.browspr.logger))
+	w.Send(lib.ResponseError, app.FormatAsVerror(err))
 }
diff --git a/services/wsprd/ipc/server/dispatcher.go b/services/wsprd/ipc/server/dispatcher.go
index 8410edd..8b96fa5 100644
--- a/services/wsprd/ipc/server/dispatcher.go
+++ b/services/wsprd/ipc/server/dispatcher.go
@@ -56,20 +56,18 @@
 	flowFactory        flowFactory
 	invokerFactory     invokerFactory
 	authFactory        authFactory
-	logger             vlog.Logger
 	outstandingLookups map[int32]chan lookupReply
 }
 
 var _ ipc.Dispatcher = (*dispatcher)(nil)
 
 // newDispatcher is a dispatcher factory.
-func newDispatcher(serverID uint32, flowFactory flowFactory, invokerFactory invokerFactory, authFactory authFactory, logger vlog.Logger) *dispatcher {
+func newDispatcher(serverID uint32, flowFactory flowFactory, invokerFactory invokerFactory, authFactory authFactory) *dispatcher {
 	return &dispatcher{
 		serverID:           serverID,
 		flowFactory:        flowFactory,
 		invokerFactory:     invokerFactory,
 		authFactory:        authFactory,
-		logger:             logger,
 		outstandingLookups: make(map[int32]chan lookupReply),
 	}
 }
@@ -123,7 +121,7 @@
 
 	if ch == nil {
 		d.flowFactory.cleanupFlow(id)
-		d.logger.Errorf("unknown invoke request for flow: %d", id)
+		vlog.Errorf("unknown invoke request for flow: %d", id)
 		return
 	}
 
@@ -132,7 +130,7 @@
 	if err := decoder.Decode(&intermediateReply); err != nil {
 		err2 := verror2.Convert(verror2.Internal, nil, err).(verror2.Standard)
 		intermediateReply = lookupIntermediateReply{Err: &err2}
-		d.logger.Errorf("unmarshaling invoke request failed: %v, %s", err, data)
+		vlog.Errorf("unmarshaling invoke request failed: %v, %s", err, data)
 	}
 
 	reply := lookupReply{
diff --git a/services/wsprd/ipc/server/dispatcher_test.go b/services/wsprd/ipc/server/dispatcher_test.go
index 91a6cfa..41cef8a 100644
--- a/services/wsprd/ipc/server/dispatcher_test.go
+++ b/services/wsprd/ipc/server/dispatcher_test.go
@@ -5,8 +5,6 @@
 	"reflect"
 	"testing"
 
-	_ "v.io/core/veyron/profiles"
-	"v.io/core/veyron2"
 	"v.io/core/veyron2/ipc"
 	"v.io/core/veyron2/security"
 	"v.io/core/veyron2/vdl/vdlroot/src/signature"
@@ -74,12 +72,8 @@
 }
 
 func TestSuccessfulLookup(t *testing.T) {
-	ctx, shutdown := veyron2.Init()
-	defer shutdown()
-
 	flowFactory := &mockFlowFactory{}
-	logger := veyron2.GetLogger(ctx)
-	d := newDispatcher(0, flowFactory, mockInvokerFactory{}, mockAuthorizerFactory{}, logger)
+	d := newDispatcher(0, flowFactory, mockInvokerFactory{}, mockAuthorizerFactory{})
 	expectedSig := []signature.Interface{
 		{Name: "AName"},
 	}
@@ -123,12 +117,8 @@
 }
 
 func TestSuccessfulLookupWithAuthorizer(t *testing.T) {
-	ctx, shutdown := veyron2.Init()
-	defer shutdown()
-
 	flowFactory := &mockFlowFactory{}
-	logger := veyron2.GetLogger(ctx)
-	d := newDispatcher(0, flowFactory, mockInvokerFactory{}, mockAuthorizerFactory{}, logger)
+	d := newDispatcher(0, flowFactory, mockInvokerFactory{}, mockAuthorizerFactory{})
 	expectedSig := []signature.Interface{
 		{Name: "AName"},
 	}
@@ -172,12 +162,8 @@
 }
 
 func TestFailedLookup(t *testing.T) {
-	ctx, shutdown := veyron2.Init()
-	defer shutdown()
-
 	flowFactory := &mockFlowFactory{}
-	logger := veyron2.GetLogger(ctx)
-	d := newDispatcher(0, flowFactory, mockInvokerFactory{}, mockAuthorizerFactory{}, logger)
+	d := newDispatcher(0, flowFactory, mockInvokerFactory{}, mockAuthorizerFactory{})
 	go func() {
 		if err := flowFactory.writer.WaitForMessage(1); err != nil {
 			t.Errorf("failed to get dispatch request %v", err)
diff --git a/services/wsprd/ipc/server/server.go b/services/wsprd/ipc/server/server.go
index 1281db7..b478647 100644
--- a/services/wsprd/ipc/server/server.go
+++ b/services/wsprd/ipc/server/server.go
@@ -54,7 +54,6 @@
 	FlowHandler
 	HandleStore
 
-	GetLogger() vlog.Logger
 	Context() *context.T
 }
 
@@ -174,7 +173,7 @@
 			return errHandler(err)
 		}
 
-		s.helper.GetLogger().VI(3).Infof("calling method %q with args %v, MessageID %d assigned\n", methodName, args, flow.ID)
+		vlog.VI(3).Infof("calling method %q with args %v, MessageID %d assigned\n", methodName, args, flow.ID)
 
 		// Watch for cancellation.
 		go func() {
@@ -192,16 +191,15 @@
 			ch <- &lib.ServerRPCReply{nil, &err}
 		}()
 
-		go proxyStream(call, flow.Writer, s.helper.GetLogger())
+		go proxyStream(call, flow.Writer)
 
 		return replyChan
 	}
 }
 
 type globStream struct {
-	ch     chan naming.VDLMountEntry
-	ctx    *context.T
-	logger vlog.Logger
+	ch  chan naming.VDLMountEntry
+	ctx *context.T
 }
 
 func (g *globStream) Send(item interface{}) error {
@@ -229,9 +227,8 @@
 	return func(pattern string, call ipc.ServerContext) (<-chan naming.VDLMountEntry, error) {
 		globChan := make(chan naming.VDLMountEntry, 1)
 		flow := s.helper.CreateNewFlow(s, &globStream{
-			ch:     globChan,
-			ctx:    call.Context(),
-			logger: s.helper.GetLogger(),
+			ch:  globChan,
+			ctx: call.Context(),
 		})
 		replyChan := make(chan *lib.ServerRPCReply, 1)
 		s.mu.Lock()
@@ -271,7 +268,7 @@
 			return errHandler(err)
 		}
 
-		s.helper.GetLogger().VI(3).Infof("calling method 'Glob__' with args %v, MessageID %d assigned\n", []interface{}{pattern}, flow.ID)
+		vlog.VI(3).Infof("calling method 'Glob__' with args %v, MessageID %d assigned\n", []interface{}{pattern}, flow.ID)
 
 		// Watch for cancellation.
 		go func() {
@@ -293,7 +290,7 @@
 	}
 }
 
-func proxyStream(stream ipc.Stream, w lib.ClientWriter, logger vlog.Logger) {
+func proxyStream(stream ipc.Stream, w lib.ClientWriter) {
 	var item interface{}
 	for err := stream.Recv(&item); err == nil; err = stream.Recv(&item) {
 		vomItem, err := lib.VomEncode(item)
@@ -345,7 +342,7 @@
 			Handle:   handle,
 			Context:  s.convertSecurityContext(ctx),
 		}
-		s.helper.GetLogger().VI(0).Infof("Sending out auth request for %v, %v", flow.ID, message)
+		vlog.VI(0).Infof("Sending out auth request for %v, %v", flow.ID, message)
 
 		vomMessage, err := lib.VomEncode(message)
 		if err != nil {
@@ -355,7 +352,7 @@
 		}
 
 		err = <-replyChan
-		s.helper.GetLogger().VI(0).Infof("going to respond with %v", err)
+		vlog.VI(0).Infof("going to respond with %v", err)
 		s.mu.Lock()
 		delete(s.outstandingAuthRequests, flow.ID)
 		s.mu.Unlock()
@@ -369,7 +366,7 @@
 	defer s.mu.Unlock()
 
 	if s.dispatcher == nil {
-		s.dispatcher = newDispatcher(s.id, s, s, s, s.helper.GetLogger())
+		s.dispatcher = newDispatcher(s.id, s, s, s)
 	}
 
 	if !s.isListening {
@@ -397,7 +394,7 @@
 func (s *Server) HandleServerResponse(id int32, data string) {
 	ch := s.popServerRequest(id)
 	if ch == nil {
-		s.helper.GetLogger().Errorf("unexpected result from JavaScript. No channel "+
+		vlog.Errorf("unexpected result from JavaScript. No channel "+
 			"for MessageId: %d exists. Ignoring the results.", id)
 		// Ignore unknown responses that don't belong to any channel
 		return
@@ -409,7 +406,7 @@
 		reply.Err = err
 	}
 
-	s.helper.GetLogger().VI(0).Infof("response received from JavaScript server for "+
+	vlog.VI(0).Infof("response received from JavaScript server for "+
 		"MessageId %d with result %v", id, reply)
 	s.helper.CleanupFlow(id)
 	ch <- &reply
@@ -424,7 +421,7 @@
 	ch := s.outstandingAuthRequests[id]
 	s.mu.Unlock()
 	if ch == nil {
-		s.helper.GetLogger().Errorf("unexpected result from JavaScript. No channel "+
+		vlog.Errorf("unexpected result from JavaScript. No channel "+
 			"for MessageId: %d exists. Ignoring the results(%s)", id, data)
 		//Ignore unknown responses that don't belong to any channel
 		return
@@ -436,7 +433,7 @@
 		reply = authReply{Err: &err}
 	}
 
-	s.helper.GetLogger().VI(0).Infof("response received from JavaScript server for "+
+	vlog.VI(0).Infof("response received from JavaScript server for "+
 		"MessageId %d with result %v", id, reply)
 	s.helper.CleanupFlow(id)
 	// A nil verror.Standard does not result in an nil error.  Instead, we have create
diff --git a/services/wsprd/wspr/pipe.go b/services/wsprd/wspr/pipe.go
index e4bd5bf..50516bf 100644
--- a/services/wsprd/wspr/pipe.go
+++ b/services/wsprd/wspr/pipe.go
@@ -29,8 +29,6 @@
 
 	ws *websocket.Conn
 
-	logger vlog.Logger
-
 	wspr *WSPR
 
 	// Creates a client writer for a given flow.  This is a member so that tests can override
@@ -47,17 +45,17 @@
 }
 
 func newPipe(w http.ResponseWriter, req *http.Request, wspr *WSPR, creator func(id int32) lib.ClientWriter) *pipe {
-	pipe := &pipe{logger: wspr.logger, wspr: wspr, req: req}
+	pipe := &pipe{wspr: wspr, req: req}
 
 	if creator == nil {
 		creator = func(id int32) lib.ClientWriter {
-			return &websocketWriter{p: pipe, id: id, logger: pipe.logger}
+			return &websocketWriter{p: pipe, id: id}
 		}
 	}
 	pipe.writerCreator = creator
 	origin := req.Header.Get("Origin")
 	if origin == "" {
-		wspr.logger.Errorf("Could not read origin from the request")
+		vlog.Errorf("Could not read origin from the request")
 		http.Error(w, "Could not read origin from the request", http.StatusBadRequest)
 		return nil
 	}
@@ -65,13 +63,13 @@
 	p, err := wspr.principalManager.Principal(origin)
 	if err != nil {
 		p = veyron2.GetPrincipal(wspr.ctx)
-		wspr.logger.Errorf("no principal associated with origin %s: %v", origin, err)
+		vlog.Errorf("no principal associated with origin %s: %v", origin, err)
 		// TODO(bjornick): Send an error to the client when all of the principal stuff is set up.
 	}
 
 	pipe.controller, err = app.NewController(wspr.ctx, creator, wspr.listenSpec, wspr.namespaceRoots, options.RuntimePrincipal{p})
 	if err != nil {
-		wspr.logger.Errorf("Could not create controller: %v", err)
+		vlog.Errorf("Could not create controller: %v", err)
 		http.Error(w, fmt.Sprintf("Failed to create controller: %v", err), http.StatusInternalServerError)
 		return nil
 	}
@@ -82,7 +80,7 @@
 
 // cleans up any outstanding rpcs.
 func (p *pipe) cleanup() {
-	p.logger.VI(0).Info("Cleaning up websocket")
+	vlog.VI(0).Info("Cleaning up websocket")
 	p.controller.Cleanup()
 	p.ws.Close()
 	p.wspr.CleanUpPipe(p.req)
@@ -97,15 +95,15 @@
 	for {
 		msg, ok := <-p.writeQueue
 		if !ok {
-			p.logger.Errorf("write queue was closed")
+			vlog.Errorf("write queue was closed")
 			return
 		}
 
 		if msg.messageType == websocket.PingMessage {
-			p.logger.Infof("sending ping")
+			vlog.Infof("sending ping")
 		}
 		if err := p.ws.WriteMessage(msg.messageType, msg.buf); err != nil {
-			p.logger.Errorf("failed to write bytes: %s", err)
+			vlog.Errorf("failed to write bytes: %s", err)
 		}
 	}
 }
@@ -117,7 +115,7 @@
 		return
 	} else if err != nil {
 		http.Error(w, "Internal Error", 500)
-		p.logger.Errorf("websocket upgrade failed: %s", err)
+		vlog.Errorf("websocket upgrade failed: %s", err)
 		return
 	}
 
@@ -132,13 +130,13 @@
 func (p *pipe) pingLoop() {
 	for {
 		time.Sleep(pingInterval)
-		p.logger.VI(2).Info("ws: ping")
+		vlog.VI(2).Info("ws: ping")
 		p.writeQueue <- wsMessage{messageType: websocket.PingMessage, buf: []byte{}}
 	}
 }
 
 func (p *pipe) pongHandler(msg string) error {
-	p.logger.VI(2).Infof("ws: pong")
+	vlog.VI(2).Infof("ws: pong")
 	p.ws.SetReadDeadline(time.Now().Add(pongTimeout))
 	return nil
 }
@@ -151,19 +149,19 @@
 			break
 		}
 		if err != nil {
-			p.logger.VI(1).Infof("websocket receive: %s", err)
+			vlog.VI(1).Infof("websocket receive: %s", err)
 			break
 		}
 
 		if op != websocket.TextMessage {
-			p.logger.Errorf("unexpected websocket op: %v", op)
+			vlog.Errorf("unexpected websocket op: %v", op)
 		}
 
 		var msg app.Message
 		decoder := json.NewDecoder(r)
 		if err := decoder.Decode(&msg); err != nil {
 			errMsg := fmt.Sprintf("can't unmarshall JSONMessage: %v", err)
-			p.logger.Error(errMsg)
+			vlog.Error(errMsg)
 			p.writeQueue <- wsMessage{messageType: websocket.TextMessage, buf: []byte(errMsg)}
 			continue
 		}
diff --git a/services/wsprd/wspr/writer.go b/services/wsprd/wspr/writer.go
index 17377ac..7ac4ef8 100644
--- a/services/wsprd/wspr/writer.go
+++ b/services/wsprd/wspr/writer.go
@@ -22,9 +22,8 @@
 
 // Implements clientWriter interface for sending messages over websockets.
 type websocketWriter struct {
-	p      *pipe
-	logger vlog.Logger
-	id     int32
+	p  *pipe
+	id int32
 }
 
 func (w *websocketWriter) Send(messageType lib.ResponseType, data interface{}) error {
@@ -64,7 +63,7 @@
 	if verror2.Is(verr, verror2.Internal.ID) {
 		logLevel = 2
 	}
-	w.logger.VI(logLevel).Info(logErr)
+	vlog.VI(logLevel).Info(logErr)
 
 	w.Send(lib.ResponseError, verr)
 }
diff --git a/services/wsprd/wspr/wspr.go b/services/wsprd/wspr/wspr.go
index 88acfed..a9dada3 100644
--- a/services/wsprd/wspr/wspr.go
+++ b/services/wsprd/wspr/wspr.go
@@ -42,7 +42,6 @@
 type WSPR struct {
 	mu      sync.Mutex
 	tlsCert *tls.Certificate
-	logger  vlog.Logger
 	ctx     *context.T
 	// HTTP port for WSPR to serve on. Note, WSPR always serves on localhost.
 	httpPort         int
@@ -72,7 +71,7 @@
 		vlog.Fatalf("Listen failed: %s", err)
 	}
 	wspr.ln = ln.(*net.TCPListener)
-	wspr.logger.VI(1).Infof("Listening at %s", ln.Addr().String())
+	vlog.VI(1).Infof("Listening at %s", ln.Addr().String())
 	return ln.Addr()
 }
 
@@ -131,7 +130,6 @@
 		httpPort:       httpPort,
 		listenSpec:     listenSpec,
 		namespaceRoots: namespaceRoots,
-		logger:         veyron2.GetLogger(ctx),
 		pipes:          map[*http.Request]*pipe{},
 	}
 
@@ -148,7 +146,7 @@
 }
 
 func (wspr *WSPR) logAndSendBadReqErr(w http.ResponseWriter, msg string) {
-	wspr.logger.Error(msg)
+	vlog.Error(msg)
 	http.Error(w, msg, http.StatusBadRequest)
 	return
 }
@@ -178,7 +176,7 @@
 		http.Error(w, "Method not allowed.", http.StatusMethodNotAllowed)
 		return
 	}
-	wspr.logger.VI(0).Info("Creating a new websocket")
+	vlog.VI(0).Info("Creating a new websocket")
 	p := newPipe(w, r, wspr, nil)
 
 	if p == nil {