github.com/linuxboot/fiano@v1.2.0/pkg/log/logger.go (about)

     1  // Copyright 2021 the LinuxBoot 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 log
     6  
     7  import (
     8  	"log"
     9  	"os"
    10  )
    11  
    12  // Logger describes a logger to be used in fiano.
    13  type Logger interface {
    14  	// Warnf logs an warning message.
    15  	Warnf(format string, args ...interface{})
    16  
    17  	// Errorf logs an error message.
    18  	Errorf(format string, args ...interface{})
    19  
    20  	// Fatalf logs a fatal message and immediately exits the application
    21  	// with os.Exit.
    22  	Fatalf(format string, args ...interface{})
    23  }
    24  
    25  // DefaultLogger is the logger used by default everywhere within fiano.
    26  var DefaultLogger Logger
    27  
    28  func init() {
    29  	DefaultLogger = logWrapper{Logger: log.New(os.Stderr, "", log.LstdFlags)}
    30  }
    31  
    32  type logWrapper struct {
    33  	Logger *log.Logger
    34  }
    35  
    36  // Warnf implements Logger.
    37  func (logger logWrapper) Warnf(format string, args ...interface{}) {
    38  	logger.Logger.Printf("[fiano][WARN] "+format, args...)
    39  }
    40  
    41  // Errorf implements Logger.
    42  func (logger logWrapper) Errorf(format string, args ...interface{}) {
    43  	logger.Logger.Printf("[fiano][ERROR] "+format, args...)
    44  }
    45  
    46  // Fatalf implements Logger.
    47  func (logger logWrapper) Fatalf(format string, args ...interface{}) {
    48  	logger.Logger.Fatalf("[fiano][FATAL] "+format, args...)
    49  }
    50  
    51  // Warnf logs an warning message.
    52  func Warnf(format string, args ...interface{}) {
    53  	DefaultLogger.Warnf(format, args...)
    54  }
    55  
    56  // Errorf logs an error message.
    57  func Errorf(format string, args ...interface{}) {
    58  	DefaultLogger.Errorf(format, args...)
    59  }
    60  
    61  // Fatalf logs a fatal message and immediately exits the application
    62  // with os.Exit (which is expected to be called by the DefaultLogger.Fatalf).
    63  func Fatalf(format string, args ...interface{}) {
    64  	DefaultLogger.Fatalf(format, args...)
    65  }