123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- package main
- import (
- "fmt"
- "os"
- "time"
- "github.com/sirupsen/logrus"
- )
- var (
- log *logrus.Logger
- )
- func setupLogger() {
- log = logrus.New()
- // Handle logfile
- if *logFile == "" {
- log.SetOutput(os.Stderr)
- } else {
- writer, err := os.OpenFile(*logFile, os.O_CREATE|os.O_RDWR|os.O_APPEND, 0600)
- if err != nil {
- fmt.Printf("cannot open log file: %s\n", err)
- os.Exit(1)
- }
- log.SetOutput(writer)
- }
- // Handle log_format
- switch *logFormat {
- case "json":
- log.SetFormatter(&logrus.JSONFormatter{
- TimestampFormat: time.RFC3339Nano,
- DisableHTMLEscape: true,
- })
- case "plain":
- log.SetFormatter(&logrus.TextFormatter{
- DisableTimestamp: true,
- })
- case "", "default":
- log.SetFormatter(&logrus.TextFormatter{
- FullTimestamp: true,
- })
- default:
- fmt.Fprintf(os.Stderr, "Invalid log_format: %s\n", *logFormat)
- os.Exit(1)
- }
- // Handle log_level
- level, err := logrus.ParseLevel(*logLevel)
- if err != nil {
- level = logrus.InfoLevel
- log.WithField("given_level", *logLevel).
- Warn("could not parse log level, defaulting to 'info'")
- }
- log.SetLevel(level)
- }
|