github.com/u-root/u-root@v7.0.1-0.20200915234505-ad7babab0a8e+incompatible/pkg/ulog/log.go (about)

     1  // Copyright 2019 the u-root Authors. All rights reserved
     2  // Use of this source code is governed by a BSD-style
     3  // license that can be found in the LICENSE file.
     4  
     5  // Package ulog exposes logging via a Go interface.
     6  //
     7  // ulog has three implementations of the Logger interface: a Go standard
     8  // library "log" package Logger, a kernel syslog (dmesg) Logger, and a test
     9  // Logger that logs via a test's testing.TB.Logf.
    10  // To use the test logger import "ulog/ulogtest".
    11  package ulog
    12  
    13  import (
    14  	"log"
    15  	"os"
    16  )
    17  
    18  // Logger is a log receptacle.
    19  //
    20  // It puts your information somewhere for safekeeping.
    21  type Logger interface {
    22  	Printf(format string, v ...interface{})
    23  	Print(v ...interface{})
    24  }
    25  
    26  // Log is a Logger that prints to stderr, like the default log package.
    27  var Log Logger = log.New(os.Stderr, "", log.LstdFlags)
    28  
    29  type emptyLogger struct{}
    30  
    31  func (emptyLogger) Printf(format string, v ...interface{}) {}
    32  func (emptyLogger) Print(v ...interface{})                 {}
    33  
    34  // Null is a logger that prints nothing.
    35  var Null Logger = emptyLogger{}