func init() { formatter := log.TextFormatter{} formatter.DisableTimestamp = false formatter.DisableColors = true log.SetFormatter(&formatter) //log.SetLevel(log.InfoLevel) }
// LogInit is a utility function to initialize logging func LogInit(filename string) { f, err := os.OpenFile(filename, os.O_RDWR|os.O_CREATE|os.O_APPEND, 0666) if err != nil { log.Fatal("Unable to open Log file ", err) } Logger.Out = f customFormatter := new(logrus.TextFormatter) customFormatter.TimestampFormat = "2016-03-28 15:04:05" Logger.Formatter = customFormatter customFormatter.FullTimestamp = true customFormatter.DisableColors = true }
// Build an adequate instance of the structured logger for this // application instance. The journal builder may draw data from the // app instance to configure the journal correctly. This method only // instantiates a very basic journal; anything more complicated than // that should be implementing using a boot.Provider to do it. func (app *App) makeJournal(level logrus.Level) *logrus.Logger { const m = "begin writing application journal" var journal *logrus.Logger = &logrus.Logger{} formatter := new(logrus.TextFormatter) // std journal.Level = level // use requested level journal.Out = os.Stdout // all goes to stdout journal.Hooks = make(logrus.LevelHooks) // empty journal.Formatter = formatter // set formatter formatter.ForceColors = false // act smart formatter.DisableColors = false // make pretty formatter.DisableTimestamp = false // is useful formatter.FullTimestamp = false // numbers formatter.TimestampFormat = time.StampMilli formatter.DisableSorting = false // order! moment := time.Now().Format(app.TimeLayout) journal.WithField("time", moment).Info(m) return journal // is ready to use }
// makeLogger configures the package level Logger instance func makeLogger(conf *BaseConfiguration) { levelName, err := logrus.ParseLevel(conf.LogLevel) if err != nil { defer Logger.Warnf("%s is not a valid level. Defaulting to info.", conf.LogLevel) levelName = logrus.InfoLevel } logOut, err := os.OpenFile(conf.LogFile, os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0644) if err != nil { defer Logger.Warnf("%s. Defaulting to Stderr.", err) logOut = os.Stderr } formatter := new(logrus.TextFormatter) formatter.DisableColors = true Logger = logrus.Logger{ Out: logOut, Formatter: formatter, Level: levelName, } Logger.Infof("Initialized at level %s", Logger.Level) }