mirror of https://github.com/golang/go.git
44 lines
996 B
Go
44 lines
996 B
Go
// Copyright 2020 The Go Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style
|
|
// license that can be found in the LICENSE file.
|
|
|
|
// Package log provides helper methods for exporting log events to the
|
|
// internal/event package.
|
|
package log
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
|
|
"golang.org/x/tools/internal/event"
|
|
"golang.org/x/tools/internal/event/label"
|
|
"golang.org/x/tools/internal/lsp/debug/tag"
|
|
)
|
|
|
|
// Level parameterizes log severity.
|
|
type Level int
|
|
|
|
const (
|
|
_ Level = iota
|
|
Error
|
|
Warning
|
|
Info
|
|
Debug
|
|
Trace
|
|
)
|
|
|
|
// Log exports a log event labeled with level l.
|
|
func (l Level) Log(ctx context.Context, msg string) {
|
|
event.Log(ctx, msg, tag.Level.Of(int(l)))
|
|
}
|
|
|
|
// Logf formats and exports a log event labeled with level l.
|
|
func (l Level) Logf(ctx context.Context, format string, args ...interface{}) {
|
|
l.Log(ctx, fmt.Sprintf(format, args...))
|
|
}
|
|
|
|
// LabeledLevel extracts the labeled log l
|
|
func LabeledLevel(lm label.Map) Level {
|
|
return Level(tag.Level.Get(lm))
|
|
}
|