internal/lsp: convert all logging calls to the context version

Change-Id: I20e3acee4272f05a9f31a7bb4219fc2fe751e6b3
Reviewed-on: https://go-review.googlesource.com/c/tools/+/185988
Run-TryBot: Ian Cottrell <iancottrell@google.com>
Reviewed-by: Rebecca Stambler <rstambler@golang.org>
diff --git a/internal/lsp/cache/gofile.go b/internal/lsp/cache/gofile.go
index 9155040..03750ba 100644
--- a/internal/lsp/cache/gofile.go
+++ b/internal/lsp/cache/gofile.go
@@ -11,6 +11,7 @@
 	"sync"
 
 	"golang.org/x/tools/internal/lsp/source"
+	"golang.org/x/tools/internal/lsp/xlog"
 	"golang.org/x/tools/internal/span"
 )
 
@@ -52,7 +53,7 @@
 
 	if f.isDirty() || f.astIsTrimmed() {
 		if _, err := f.view.loadParseTypecheck(ctx, f); err != nil {
-			f.View().Session().Logger().Errorf(ctx, "unable to check package for %s: %v", f.URI(), err)
+			xlog.Errorf(ctx, "unable to check package for %s: %v", f.URI(), err)
 			return nil
 		}
 	}
@@ -71,7 +72,7 @@
 
 	if f.isDirty() {
 		if _, err := f.view.loadParseTypecheck(ctx, f); err != nil {
-			f.View().Session().Logger().Errorf(ctx, "unable to check package for %s: %v", f.URI(), err)
+			xlog.Errorf(ctx, "unable to check package for %s: %v", f.URI(), err)
 			return nil
 		}
 	}
@@ -91,7 +92,7 @@
 
 	if f.isDirty() || f.astIsTrimmed() {
 		if _, err := f.view.loadParseTypecheck(ctx, f); err != nil {
-			f.View().Session().Logger().Errorf(ctx, "unable to check package for %s: %v", f.URI(), err)
+			xlog.Errorf(ctx, "unable to check package for %s: %v", f.URI(), err)
 			return nil
 		}
 	}
@@ -110,7 +111,7 @@
 
 	if f.isDirty() || f.astIsTrimmed() {
 		if errs, err := f.view.loadParseTypecheck(ctx, f); err != nil {
-			f.View().Session().Logger().Errorf(ctx, "unable to check package for %s: %v", f.URI(), err)
+			xlog.Errorf(ctx, "unable to check package for %s: %v", f.URI(), err)
 
 			// Create diagnostics for errors if we are able to.
 			if len(errs) > 0 {
@@ -151,12 +152,12 @@
 func unexpectedAST(ctx context.Context, f *goFile) bool {
 	// If the AST comes back nil, something has gone wrong.
 	if f.ast == nil {
-		f.View().Session().Logger().Errorf(ctx, "expected full AST for %s, returned nil", f.URI())
+		xlog.Errorf(ctx, "expected full AST for %s, returned nil", f.URI())
 		return true
 	}
 	// If the AST comes back trimmed, something has gone wrong.
 	if f.ast.isTrimmed {
-		f.View().Session().Logger().Errorf(ctx, "expected full AST for %s, returned trimmed", f.URI())
+		xlog.Errorf(ctx, "expected full AST for %s, returned trimmed", f.URI())
 		return true
 	}
 	return false
diff --git a/internal/lsp/cache/load.go b/internal/lsp/cache/load.go
index ed483b1..f0e4bbb 100644
--- a/internal/lsp/cache/load.go
+++ b/internal/lsp/cache/load.go
@@ -10,6 +10,7 @@
 
 	"golang.org/x/tools/go/packages"
 	"golang.org/x/tools/internal/lsp/source"
+	"golang.org/x/tools/internal/lsp/xlog"
 	"golang.org/x/tools/internal/span"
 )
 
@@ -224,11 +225,11 @@
 	for _, filename := range m.files {
 		f, err := v.getFile(ctx, span.FileURI(filename))
 		if err != nil {
-			v.session.log.Errorf(ctx, "no file %s: %v", filename, err)
+			xlog.Errorf(ctx, "no file %s: %v", filename, err)
 		}
 		gof, ok := f.(*goFile)
 		if !ok {
-			v.session.log.Errorf(ctx, "not a Go file: %s", f.URI())
+			xlog.Errorf(ctx, "not a Go file: %s", f.URI())
 		}
 		if gof.meta == nil {
 			gof.meta = make(map[packageID]*metadata)
@@ -252,7 +253,7 @@
 		}
 		if _, ok := m.children[packageID(importPkg.ID)]; !ok {
 			if err := v.link(ctx, importPkgPath, importPkg, m, missingImports); err != nil {
-				v.session.log.Errorf(ctx, "error in dependency %s: %v", importPkgPath, err)
+				xlog.Errorf(ctx, "error in dependency %s: %v", importPkgPath, err)
 			}
 		}
 	}
diff --git a/internal/lsp/cache/session.go b/internal/lsp/cache/session.go
index 4775a9b..0104287 100644
--- a/internal/lsp/cache/session.go
+++ b/internal/lsp/cache/session.go
@@ -199,12 +199,12 @@
 		if strings.HasPrefix(string(uri), string(view.Folder())) {
 			f, err := view.GetFile(ctx, uri)
 			if err != nil {
-				s.log.Errorf(ctx, "error getting file for %s", uri)
+				xlog.Errorf(ctx, "error getting file for %s", uri)
 				return
 			}
 			gof, ok := f.(*goFile)
 			if !ok {
-				s.log.Errorf(ctx, "%s is not a Go file", uri)
+				xlog.Errorf(ctx, "%s is not a Go file", uri)
 				return
 			}
 			// Mark file as open.
@@ -276,7 +276,7 @@
 	}
 	_, hash, err := s.cache.GetFile(uri).Read(ctx)
 	if err != nil {
-		s.log.Errorf(ctx, "failed to read %s: %v", uri, err)
+		xlog.Errorf(ctx, "failed to read %s: %v", uri, err)
 		return
 	}
 	if hash == s.overlays[uri].hash {
diff --git a/internal/lsp/cache/view.go b/internal/lsp/cache/view.go
index 326cf5c..f4922ce 100644
--- a/internal/lsp/cache/view.go
+++ b/internal/lsp/cache/view.go
@@ -17,6 +17,7 @@
 	"golang.org/x/tools/go/packages"
 	"golang.org/x/tools/internal/lsp/debug"
 	"golang.org/x/tools/internal/lsp/source"
+	"golang.org/x/tools/internal/lsp/xlog"
 	"golang.org/x/tools/internal/span"
 )
 
@@ -277,12 +278,12 @@
 	for _, filename := range m.files {
 		f, err := v.findFile(span.FileURI(filename))
 		if err != nil {
-			v.session.log.Errorf(ctx, "cannot find file %s: %v", f.URI(), err)
+			xlog.Errorf(ctx, "cannot find file %s: %v", f.URI(), err)
 			continue
 		}
 		gof, ok := f.(*goFile)
 		if !ok {
-			v.session.log.Errorf(ctx, "non-Go file %v", f.URI())
+			xlog.Errorf(ctx, "non-Go file %v", f.URI())
 			continue
 		}
 		gof.mu.Lock()
diff --git a/internal/lsp/code_action.go b/internal/lsp/code_action.go
index e1b0643..ca0862e 100644
--- a/internal/lsp/code_action.go
+++ b/internal/lsp/code_action.go
@@ -11,6 +11,7 @@
 
 	"golang.org/x/tools/internal/lsp/protocol"
 	"golang.org/x/tools/internal/lsp/source"
+	"golang.org/x/tools/internal/lsp/xlog"
 	"golang.org/x/tools/internal/span"
 )
 
@@ -57,7 +58,7 @@
 		if s.wantSuggestedFixes {
 			qf, err := quickFixes(ctx, view, gof)
 			if err != nil {
-				view.Session().Logger().Errorf(ctx, "quick fixes failed for %s: %v", uri, err)
+				xlog.Errorf(ctx, "quick fixes failed for %s: %v", uri, err)
 			}
 			codeActions = append(codeActions, qf...)
 		}
diff --git a/internal/lsp/completion.go b/internal/lsp/completion.go
index d1103ff..ac7705d 100644
--- a/internal/lsp/completion.go
+++ b/internal/lsp/completion.go
@@ -12,6 +12,7 @@
 
 	"golang.org/x/tools/internal/lsp/protocol"
 	"golang.org/x/tools/internal/lsp/source"
+	"golang.org/x/tools/internal/lsp/xlog"
 	"golang.org/x/tools/internal/span"
 )
 
@@ -35,7 +36,7 @@
 		WantDocumentaton: s.wantCompletionDocumentation,
 	})
 	if err != nil {
-		s.session.Logger().Infof(ctx, "no completions found for %s:%v:%v: %v", uri, int(params.Position.Line), int(params.Position.Character), err)
+		xlog.Infof(ctx, "no completions found for %s:%v:%v: %v", uri, int(params.Position.Line), int(params.Position.Character), err)
 	}
 	return &protocol.CompletionList{
 		IsIncomplete: false,
@@ -62,11 +63,11 @@
 		prefix = strings.ToLower(surrounding.Prefix())
 		spn, err := surrounding.Range.Span()
 		if err != nil {
-			s.session.Logger().Infof(ctx, "failed to get span for surrounding position: %s:%v:%v: %v", m.URI, int(pos.Line), int(pos.Character), err)
+			xlog.Infof(ctx, "failed to get span for surrounding position: %s:%v:%v: %v", m.URI, int(pos.Line), int(pos.Character), err)
 		} else {
 			rng, err := m.Range(spn)
 			if err != nil {
-				s.session.Logger().Infof(ctx, "failed to convert surrounding position: %s:%v:%v: %v", m.URI, int(pos.Line), int(pos.Character), err)
+				xlog.Infof(ctx, "failed to convert surrounding position: %s:%v:%v: %v", m.URI, int(pos.Line), int(pos.Character), err)
 			} else {
 				insertionRange = rng
 			}
diff --git a/internal/lsp/diagnostics.go b/internal/lsp/diagnostics.go
index c9bf489..b7fd90d 100644
--- a/internal/lsp/diagnostics.go
+++ b/internal/lsp/diagnostics.go
@@ -10,13 +10,14 @@
 
 	"golang.org/x/tools/internal/lsp/protocol"
 	"golang.org/x/tools/internal/lsp/source"
+	"golang.org/x/tools/internal/lsp/xlog"
 	"golang.org/x/tools/internal/span"
 )
 
 func (s *Server) Diagnostics(ctx context.Context, view source.View, uri span.URI) {
 	f, err := view.GetFile(ctx, uri)
 	if err != nil {
-		s.session.Logger().Errorf(ctx, "no file for %s: %v", uri, err)
+		xlog.Errorf(ctx, "no file for %s: %v", uri, err)
 		return
 	}
 	// For non-Go files, don't return any diagnostics.
@@ -26,7 +27,7 @@
 	}
 	reports, err := source.Diagnostics(ctx, view, gof, s.disabledAnalyses)
 	if err != nil {
-		s.session.Logger().Errorf(ctx, "failed to compute diagnostics for %s: %v", gof.URI(), err)
+		xlog.Errorf(ctx, "failed to compute diagnostics for %s: %v", gof.URI(), err)
 		return
 	}
 
@@ -38,7 +39,7 @@
 			if s.undelivered == nil {
 				s.undelivered = make(map[span.URI][]source.Diagnostic)
 			}
-			s.session.Logger().Errorf(ctx, "failed to deliver diagnostic for %s (will retry): %v", uri, err)
+			xlog.Errorf(ctx, "failed to deliver diagnostic for %s (will retry): %v", uri, err)
 			s.undelivered[uri] = diagnostics
 			continue
 		}
@@ -49,7 +50,7 @@
 	// undelivered ones (only for remaining URIs).
 	for uri, diagnostics := range s.undelivered {
 		if err := s.publishDiagnostics(ctx, view, uri, diagnostics); err != nil {
-			s.session.Logger().Errorf(ctx, "failed to deliver diagnostic for %s (will not retry): %v", uri, err)
+			xlog.Errorf(ctx, "failed to deliver diagnostic for %s (will not retry): %v", uri, err)
 		}
 		// If we fail to deliver the same diagnostics twice, just give up.
 		delete(s.undelivered, uri)
diff --git a/internal/lsp/general.go b/internal/lsp/general.go
index 65ba6ea..12adb19 100644
--- a/internal/lsp/general.go
+++ b/internal/lsp/general.go
@@ -15,6 +15,7 @@
 	"golang.org/x/tools/internal/lsp/debug"
 	"golang.org/x/tools/internal/lsp/protocol"
 	"golang.org/x/tools/internal/lsp/source"
+	"golang.org/x/tools/internal/lsp/xlog"
 	"golang.org/x/tools/internal/span"
 )
 
@@ -154,7 +155,7 @@
 	}
 	buf := &bytes.Buffer{}
 	debug.PrintVersionInfo(buf, true, debug.PlainText)
-	s.session.Logger().Infof(ctx, "%s", buf)
+	xlog.Infof(ctx, "%s", buf)
 	return nil
 }
 
@@ -209,7 +210,7 @@
 		case "FullDocumentation":
 			s.hoverKind = source.FullDocumentation
 		default:
-			view.Session().Logger().Errorf(ctx, "unsupported hover kind %s", hoverKind)
+			xlog.Errorf(ctx, "unsupported hover kind %s", hoverKind)
 			// The default value is already be set to synopsis.
 		}
 	}
diff --git a/internal/lsp/highlight.go b/internal/lsp/highlight.go
index 2bfd3d7..ade399a 100644
--- a/internal/lsp/highlight.go
+++ b/internal/lsp/highlight.go
@@ -9,6 +9,7 @@
 
 	"golang.org/x/tools/internal/lsp/protocol"
 	"golang.org/x/tools/internal/lsp/source"
+	"golang.org/x/tools/internal/lsp/xlog"
 	"golang.org/x/tools/internal/span"
 )
 
@@ -29,7 +30,7 @@
 	}
 	spans, err := source.Highlight(ctx, f, rng.Start)
 	if err != nil {
-		view.Session().Logger().Errorf(ctx, "no highlight for %s: %v", spn, err)
+		xlog.Errorf(ctx, "no highlight for %s: %v", spn, err)
 	}
 	return toProtocolHighlight(m, spans), nil
 }
diff --git a/internal/lsp/link.go b/internal/lsp/link.go
index 96c8470..121ff5ca 100644
--- a/internal/lsp/link.go
+++ b/internal/lsp/link.go
@@ -15,6 +15,7 @@
 
 	"golang.org/x/tools/internal/lsp/protocol"
 	"golang.org/x/tools/internal/lsp/source"
+	"golang.org/x/tools/internal/lsp/xlog"
 	"golang.org/x/tools/internal/span"
 )
 
@@ -37,13 +38,13 @@
 		case *ast.ImportSpec:
 			target, err := strconv.Unquote(n.Path.Value)
 			if err != nil {
-				view.Session().Logger().Errorf(ctx, "cannot unquote import path %s: %v", n.Path.Value, err)
+				xlog.Errorf(ctx, "cannot unquote import path %s: %v", n.Path.Value, err)
 				return false
 			}
 			target = "https://godoc.org/" + target
 			l, err := toProtocolLink(view, m, target, n.Pos(), n.End())
 			if err != nil {
-				view.Session().Logger().Errorf(ctx, "cannot initialize DocumentLink %s: %v", n.Path.Value, err)
+				xlog.Errorf(ctx, "cannot initialize DocumentLink %s: %v", n.Path.Value, err)
 				return false
 			}
 			links = append(links, l)
@@ -54,7 +55,7 @@
 			}
 			l, err := findLinksInString(n.Value, n.Pos(), view, m)
 			if err != nil {
-				view.Session().Logger().Errorf(ctx, "cannot find links in string: %v", err)
+				xlog.Errorf(ctx, "cannot find links in string: %v", err)
 				return false
 			}
 			links = append(links, l...)
@@ -67,7 +68,7 @@
 		for _, comment := range commentGroup.List {
 			l, err := findLinksInString(comment.Text, comment.Pos(), view, m)
 			if err != nil {
-				view.Session().Logger().Errorf(ctx, "cannot find links in comment: %v", err)
+				xlog.Errorf(ctx, "cannot find links in comment: %v", err)
 				continue
 			}
 			links = append(links, l...)
diff --git a/internal/lsp/protocol/protocol.go b/internal/lsp/protocol/protocol.go
index 254b2f9..ff16c8a 100644
--- a/internal/lsp/protocol/protocol.go
+++ b/internal/lsp/protocol/protocol.go
@@ -60,6 +60,6 @@
 		err = jsonrpc2.NewErrorf(jsonrpc2.CodeParseError, "%v", err)
 	}
 	if err := req.Reply(ctx, nil, err); err != nil {
-		log.Errorf(ctx, "%v", err)
+		xlog.Errorf(ctx, "%v", err)
 	}
 }
diff --git a/internal/lsp/references.go b/internal/lsp/references.go
index a6506a5..430dc3c 100644
--- a/internal/lsp/references.go
+++ b/internal/lsp/references.go
@@ -9,6 +9,7 @@
 
 	"golang.org/x/tools/internal/lsp/protocol"
 	"golang.org/x/tools/internal/lsp/source"
+	"golang.org/x/tools/internal/lsp/xlog"
 	"golang.org/x/tools/internal/span"
 )
 
@@ -34,7 +35,7 @@
 	}
 	references, err := ident.References(ctx)
 	if err != nil {
-		view.Session().Logger().Errorf(ctx, "no references for %s: %v", ident.Name, err)
+		xlog.Errorf(ctx, "no references for %s: %v", ident.Name, err)
 	}
 	if params.Context.IncludeDeclaration {
 		// The declaration of this identifier may not be in the
diff --git a/internal/lsp/signature_help.go b/internal/lsp/signature_help.go
index 85d7eea..1fa7b04 100644
--- a/internal/lsp/signature_help.go
+++ b/internal/lsp/signature_help.go
@@ -9,6 +9,7 @@
 
 	"golang.org/x/tools/internal/lsp/protocol"
 	"golang.org/x/tools/internal/lsp/source"
+	"golang.org/x/tools/internal/lsp/xlog"
 	"golang.org/x/tools/internal/span"
 )
 
@@ -29,7 +30,7 @@
 	}
 	info, err := source.SignatureHelp(ctx, f, rng.Start)
 	if err != nil {
-		s.session.Logger().Infof(ctx, "no signature help for %s:%v:%v : %s", uri, int(params.Position.Line), int(params.Position.Character), err)
+		xlog.Infof(ctx, "no signature help for %s:%v:%v : %s", uri, int(params.Position.Line), int(params.Position.Character), err)
 		return nil, nil
 	}
 	return toProtocolSignatureHelp(info), nil
diff --git a/internal/lsp/source/completion_format.go b/internal/lsp/source/completion_format.go
index 1b77142..de1f4f4 100644
--- a/internal/lsp/source/completion_format.go
+++ b/internal/lsp/source/completion_format.go
@@ -14,6 +14,7 @@
 	"strings"
 
 	"golang.org/x/tools/internal/lsp/snippet"
+	"golang.org/x/tools/internal/lsp/xlog"
 	"golang.org/x/tools/internal/span"
 )
 
@@ -192,7 +193,7 @@
 		cfg := printer.Config{Mode: printer.UseSpaces | printer.TabIndent, Tabwidth: 4}
 		b := &bytes.Buffer{}
 		if err := cfg.Fprint(b, v.Session().Cache().FileSet(), p.Type); err != nil {
-			v.Session().Logger().Errorf(ctx, "unable to print type %v", p.Type)
+			xlog.Errorf(ctx, "unable to print type %v", p.Type)
 			continue
 		}
 		typ := replacer.Replace(b.String())
diff --git a/internal/lsp/source/diagnostics.go b/internal/lsp/source/diagnostics.go
index 1137fb2..268b99f 100644
--- a/internal/lsp/source/diagnostics.go
+++ b/internal/lsp/source/diagnostics.go
@@ -34,6 +34,7 @@
 	"golang.org/x/tools/go/analysis/passes/unsafeptr"
 	"golang.org/x/tools/go/analysis/passes/unusedresult"
 	"golang.org/x/tools/go/packages"
+	"golang.org/x/tools/internal/lsp/xlog"
 	"golang.org/x/tools/internal/span"
 )
 
@@ -81,7 +82,7 @@
 	if !diagnostics(ctx, view, pkg, reports) {
 		// If we don't have any list, parse, or type errors, run analyses.
 		if err := analyses(ctx, view, pkg, disabledAnalyses, reports); err != nil {
-			view.Session().Logger().Errorf(ctx, "failed to run analyses for %s: %v", f.URI(), err)
+			xlog.Errorf(ctx, "failed to run analyses for %s: %v", f.URI(), err)
 		}
 	}
 	// Updates to the diagnostics for this package may need to be propagated.
@@ -230,29 +231,29 @@
 func pointToSpan(ctx context.Context, view View, spn span.Span) span.Span {
 	f, err := view.GetFile(ctx, spn.URI())
 	if err != nil {
-		view.Session().Logger().Errorf(ctx, "could not find file for diagnostic: %v", spn.URI())
+		xlog.Errorf(ctx, "could not find file for diagnostic: %v", spn.URI())
 		return spn
 	}
 	diagFile, ok := f.(GoFile)
 	if !ok {
-		view.Session().Logger().Errorf(ctx, "%s is not a Go file", spn.URI())
+		xlog.Errorf(ctx, "%s is not a Go file", spn.URI())
 		return spn
 	}
 	tok := diagFile.GetToken(ctx)
 	if tok == nil {
-		view.Session().Logger().Errorf(ctx, "could not find token.File for diagnostic: %v", spn.URI())
+		xlog.Errorf(ctx, "could not find token.File for diagnostic: %v", spn.URI())
 		return spn
 	}
 	data, _, err := diagFile.Handle(ctx).Read(ctx)
 	if err != nil {
-		view.Session().Logger().Errorf(ctx, "could not find content for diagnostic: %v", spn.URI())
+		xlog.Errorf(ctx, "could not find content for diagnostic: %v", spn.URI())
 		return spn
 	}
 	c := span.NewTokenConverter(diagFile.FileSet(), tok)
 	s, err := spn.WithOffset(c)
 	//we just don't bother producing an error if this failed
 	if err != nil {
-		view.Session().Logger().Errorf(ctx, "invalid span for diagnostic: %v: %v", spn.URI(), err)
+		xlog.Errorf(ctx, "invalid span for diagnostic: %v: %v", spn.URI(), err)
 		return spn
 	}
 	start := s.Start()
diff --git a/internal/lsp/source/format.go b/internal/lsp/source/format.go
index 9f6fcea..72f7ddb 100644
--- a/internal/lsp/source/format.go
+++ b/internal/lsp/source/format.go
@@ -17,6 +17,7 @@
 	"golang.org/x/tools/internal/imports"
 	"golang.org/x/tools/internal/lsp/diff"
 	"golang.org/x/tools/internal/lsp/telemetry/trace"
+	"golang.org/x/tools/internal/lsp/xlog"
 	"golang.org/x/tools/internal/span"
 )
 
@@ -106,7 +107,7 @@
 	env := &imports.ProcessEnv{
 		WorkingDir: cfg.Dir,
 		Logf: func(format string, v ...interface{}) {
-			view.Session().Logger().Infof(ctx, format, v...)
+			xlog.Infof(ctx, format, v...)
 		},
 	}
 	for _, kv := range cfg.Env {
@@ -137,7 +138,7 @@
 	defer done()
 	data, _, err := file.Handle(ctx).Read(ctx)
 	if err != nil {
-		file.View().Session().Logger().Errorf(ctx, "Cannot compute text edits: %v", err)
+		xlog.Errorf(ctx, "Cannot compute text edits: %v", err)
 		return nil
 	}
 	u := diff.SplitLines(string(data))
diff --git a/internal/lsp/text_synchronization.go b/internal/lsp/text_synchronization.go
index 0f3e023..fb7608d 100644
--- a/internal/lsp/text_synchronization.go
+++ b/internal/lsp/text_synchronization.go
@@ -13,6 +13,7 @@
 	"golang.org/x/tools/internal/lsp/protocol"
 	"golang.org/x/tools/internal/lsp/source"
 	"golang.org/x/tools/internal/lsp/telemetry/trace"
+	"golang.org/x/tools/internal/lsp/xlog"
 	"golang.org/x/tools/internal/span"
 )
 
@@ -133,7 +134,7 @@
 	defer func() {
 		for _, uri := range clear {
 			if err := s.publishDiagnostics(ctx, view, uri, []source.Diagnostic{}); err != nil {
-				s.session.Logger().Errorf(ctx, "failed to clear diagnostics for %s: %v", uri, err)
+				xlog.Errorf(ctx, "failed to clear diagnostics for %s: %v", uri, err)
 			}
 		}
 	}()
@@ -141,18 +142,18 @@
 	// clear out all diagnostics for the package.
 	f, err := view.GetFile(ctx, uri)
 	if err != nil {
-		s.session.Logger().Errorf(ctx, "no file for %s: %v", uri, err)
+		xlog.Errorf(ctx, "no file for %s: %v", uri, err)
 		return nil
 	}
 	// For non-Go files, don't return any diagnostics.
 	gof, ok := f.(source.GoFile)
 	if !ok {
-		s.session.Logger().Errorf(ctx, "closing a non-Go file, no diagnostics to clear")
+		xlog.Errorf(ctx, "closing a non-Go file, no diagnostics to clear")
 		return nil
 	}
 	pkg := gof.GetPackage(ctx)
 	if pkg == nil {
-		s.session.Logger().Errorf(ctx, "no package available for %s", uri)
+		xlog.Errorf(ctx, "no package available for %s", uri)
 		return nil
 	}
 	for _, filename := range pkg.GetFilenames() {