|  | // Package stdlogging implements sklogimpl.Logger and logs to either stderr or stdout. | 
|  | package stdlogging | 
|  |  | 
|  | import ( | 
|  | logger "github.com/jcgregorio/logger" | 
|  | "go.skia.org/infra/go/sklog/sklogimpl" | 
|  | ) | 
|  |  | 
|  | type stdlog struct { | 
|  | logger *logger.Logger | 
|  | } | 
|  |  | 
|  | // New returns a sklogimpl.Logger that writes to a SyncWriter, such as | 
|  | // os.Stdout or os.Stderr. | 
|  | func New(dst logger.SyncWriter) sklogimpl.Logger { | 
|  | l := logger.NewFromOptions(&logger.Options{ | 
|  | SyncWriter:   dst, | 
|  | DepthDelta:   3, | 
|  | IncludeDebug: true, | 
|  | }) | 
|  | return &stdlog{ | 
|  | logger: l, | 
|  | } | 
|  | } | 
|  |  | 
|  | // Log implements sklogimpl.Logger. | 
|  | func (s stdlog) Log(_ int, severity sklogimpl.Severity, fmt string, args ...interface{}) { | 
|  | switch severity { | 
|  | case sklogimpl.Debug: | 
|  | if fmt == "" { | 
|  | s.logger.Debug(args...) | 
|  | } else { | 
|  | s.logger.Debugf(fmt, args...) | 
|  | } | 
|  | case sklogimpl.Info: | 
|  | if fmt == "" { | 
|  | s.logger.Info(args...) | 
|  | } else { | 
|  | s.logger.Infof(fmt, args...) | 
|  | } | 
|  | case sklogimpl.Warning: | 
|  | if fmt == "" { | 
|  | s.logger.Warning(args...) | 
|  | } else { | 
|  | s.logger.Warningf(fmt, args...) | 
|  | } | 
|  | case sklogimpl.Error: | 
|  | if fmt == "" { | 
|  | s.logger.Error(args...) | 
|  | } else { | 
|  | s.logger.Errorf(fmt, args...) | 
|  | } | 
|  | case sklogimpl.Fatal: | 
|  | if fmt == "" { | 
|  | s.logger.Fatal(args...) | 
|  | } else { | 
|  | s.logger.Fatalf(fmt, args...) | 
|  | } | 
|  | default: | 
|  | s.logger.Errorf(fmt, args...) | 
|  | } | 
|  | } | 
|  |  | 
|  | // flush implements sklogimpl.Logger. | 
|  | func (s stdlog) Flush() { | 
|  | // noop | 
|  | } |