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  }