mirror of
https://github.com/int128/kubelogin.git
synced 2026-05-21 15:22:48 +00:00
61 lines
1.2 KiB
Go
61 lines
1.2 KiB
Go
package logger
|
|
|
|
import (
|
|
"flag"
|
|
"log"
|
|
"os"
|
|
|
|
"github.com/google/wire"
|
|
"github.com/spf13/pflag"
|
|
"k8s.io/klog/v2"
|
|
)
|
|
|
|
// Set provides an implementation and interface for Logger.
|
|
var Set = wire.NewSet(
|
|
New,
|
|
)
|
|
|
|
// New returns a Logger with the standard log.Logger and klog.
|
|
func New() Interface {
|
|
return &Logger{
|
|
goLogger: log.New(os.Stderr, "", 0),
|
|
}
|
|
}
|
|
|
|
type Interface interface {
|
|
AddFlags(f *pflag.FlagSet)
|
|
Printf(format string, args ...interface{})
|
|
V(level int) Verbose
|
|
IsEnabled(level int) bool
|
|
}
|
|
|
|
type Verbose interface {
|
|
Infof(format string, args ...interface{})
|
|
}
|
|
|
|
type goLogger interface {
|
|
Printf(format string, v ...interface{})
|
|
}
|
|
|
|
// Logger provides logging facility using log.Logger and klog.
|
|
type Logger struct {
|
|
goLogger
|
|
}
|
|
|
|
// AddFlags adds the flags such as -v.
|
|
func (*Logger) AddFlags(f *pflag.FlagSet) {
|
|
gf := flag.NewFlagSet("", flag.ContinueOnError)
|
|
klog.InitFlags(gf)
|
|
f.AddGoFlagSet(gf)
|
|
}
|
|
|
|
// V returns a logger enabled only if the level is enabled.
|
|
func (*Logger) V(level int) Verbose {
|
|
return klog.V(klog.Level(level))
|
|
}
|
|
|
|
// IsEnabled returns true if the level is enabled.
|
|
func (*Logger) IsEnabled(level int) bool {
|
|
return klog.V(klog.Level(level)).Enabled()
|
|
}
|