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 }