func SetupLogger(logger *logrus.Logger) { fmter := &prefixed.TextFormatter{} logger.Formatter = fmter logger.Out = os.Stdout // Only log the info severity or above. logger.Level = logrus.InfoLevel }
func SetLogOut(log *logrus.Logger, outString string) error { switch outString { case "stdout": log.Out = os.Stdout case "stderr": log.Out = os.Stderr default: f, err := os.OpenFile(outString, os.O_RDWR|os.O_CREATE|os.O_APPEND, 0644) if err != nil { return err } log.Out = f } return nil }
// Create a logrus logger that writes its out output to a buffer for inspection func getLogrusLogger() (*logrus.Logger, *bytes.Buffer) { var logrusLogger *logrus.Logger = logrus.New() buffer := &bytes.Buffer{} logrusLogger.Out = buffer logrusLogger.Formatter = new(logrus.JSONFormatter) logrusLogger.Level = logrus.DebugLevel return logrusLogger, buffer }
// 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 }
"github.com/Sirupsen/logrus" "github.com/goadesign/goa" "github.com/goadesign/goa/logging/logrus" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" ) var _ = Describe("goalogrus", func() { var logger *logrus.Logger var adapter goa.LogAdapter var buf bytes.Buffer BeforeEach(func() { logger = logrus.New() logger.Out = &buf adapter = goalogrus.New(logger) }) It("adapts info messages", func() { msg := "msg" adapter.Info(msg) Ω(buf.String()).Should(ContainSubstring(msg)) }) }) var _ = Describe("FromEntry", func() { var entry *logrus.Entry var adapter goa.LogAdapter var buf bytes.Buffer