github.com/dzsibi/gophish@v0.7.1-0.20190719042945-1f16c7237d0d/logger/logger.go (about) 1 package logger 2 3 import ( 4 "io" 5 "os" 6 7 "github.com/gophish/gophish/config" 8 "github.com/sirupsen/logrus" 9 ) 10 11 // Logger is the main logger that is abstracted in this package. 12 // It is exported here for use with gorm. 13 var Logger *logrus.Logger 14 15 func init() { 16 Logger = logrus.New() 17 Logger.Formatter = &logrus.TextFormatter{DisableColors: true} 18 } 19 20 // Setup configures the logger based on options in the config.json. 21 func Setup(conf *config.Config) error { 22 Logger.SetLevel(logrus.InfoLevel) 23 // Set up logging to a file if specified in the config 24 logFile := conf.Logging.Filename 25 if logFile != "" { 26 f, err := os.OpenFile(logFile, os.O_WRONLY|os.O_APPEND|os.O_CREATE, 0644) 27 if err != nil { 28 return err 29 } 30 mw := io.MultiWriter(os.Stderr, f) 31 Logger.Out = mw 32 } 33 return nil 34 } 35 36 // Debug logs a debug message 37 func Debug(args ...interface{}) { 38 Logger.Debug(args...) 39 } 40 41 // Debugf logs a formatted debug messsage 42 func Debugf(format string, args ...interface{}) { 43 Logger.Debugf(format, args...) 44 } 45 46 // Info logs an informational message 47 func Info(args ...interface{}) { 48 Logger.Info(args...) 49 } 50 51 // Infof logs a formatted informational message 52 func Infof(format string, args ...interface{}) { 53 Logger.Infof(format, args...) 54 } 55 56 // Error logs an error message 57 func Error(args ...interface{}) { 58 Logger.Error(args...) 59 } 60 61 // Errorf logs a formatted error message 62 func Errorf(format string, args ...interface{}) { 63 Logger.Errorf(format, args...) 64 } 65 66 // Warn logs a warning message 67 func Warn(args ...interface{}) { 68 Logger.Warn(args...) 69 } 70 71 // Warnf logs a formatted warning message 72 func Warnf(format string, args ...interface{}) { 73 Logger.Warnf(format, args...) 74 } 75 76 // Fatal logs a fatal error message 77 func Fatal(args ...interface{}) { 78 Logger.Fatal(args...) 79 } 80 81 // Fatalf logs a formatted fatal error message 82 func Fatalf(format string, args ...interface{}) { 83 Logger.Fatalf(format, args...) 84 } 85 86 // WithFields returns a new log enty with the provided fields 87 func WithFields(fields logrus.Fields) *logrus.Entry { 88 return Logger.WithFields(fields) 89 } 90 91 // Writer returns the current logging writer 92 func Writer() *io.PipeWriter { 93 return Logger.Writer() 94 }