func InitLog()

in utils/log.go [40:76]


func InitLog(logLevel string) {
	// log.SetReportCaller(true), caller by filename
	filenameHook := filename.NewHook()
	filenameHook.Field = "line"
	log.AddHook(filenameHook)
	// TODO: Add write permission check
	if logFilename != "" {
		output := &lumberjack.Logger{
			Filename:   logFilename,
			MaxSize:    100,
			MaxAge:     7,
			MaxBackups: 30,
			LocalTime:  true,
			Compress:   false,
		}
		if logAlsoToStderr {
			writer := io.MultiWriter(output, os.Stderr)
			log.SetOutput(writer)
		} else {
			log.SetOutput(output)
		}
	} else {
		log.SetOutput(os.Stdout)
	}

	level, err := log.ParseLevel(logLevel)
	if err != nil {
		log.Errorf("parse log level %v failed: %v\n", logLevel, err)
		os.Exit(1)
	}
	log.SetLevel(level)
	log.SetFormatter(&log.TextFormatter{
		FullTimestamp:   true,
		TimestampFormat: "2006-01-02 15:04:05",
		DisableQuote:    true,
	})
}