From b01cef071c5e95f73e756c3d039e2ddf1a6ed3df Mon Sep 17 00:00:00 2001 From: Laria Carolin Chabowski Date: Mon, 18 Dec 2017 22:34:56 +0100 Subject: Add logging --- main.go | 27 ++++++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) (limited to 'main.go') diff --git a/main.go b/main.go index b6b541b..c567403 100644 --- a/main.go +++ b/main.go @@ -1,6 +1,7 @@ package main import ( + "code.laria.me/petrific/logging" "flag" "fmt" "os" @@ -27,16 +28,17 @@ func subcmdUsage(name string, usage string, flags *flag.FlagSet) func() { } } -func subcmdErrout(name string) func(error) { +func subcmdErrout(log *logging.Log, name string) func(error) { return func(err error) { - fmt.Fprintf(os.Stderr, "%s: %s\n", name, err) + log.Error().Printf("%s: %s\n", name, err) } } // Global flags var ( - flagConfPath = flag.String("config", "", "Use this config file instead of the default") - flagStorage = flag.String("storage", "", "Operate on this storage instead of the default one") + flagConfPath = flag.String("config", "", "Use this config file instead of the default") + flagStorage = flag.String("storage", "", "Operate on this storage instead of the default one") + flagVerbosity = flag.Int("verbosity", int(logging.LWarn), "Verbosity level (0: quiet, 4: everything)") ) func main() { @@ -54,11 +56,17 @@ func Main() int { } flag.Parse() - env, err := NewEnv(*flagConfPath, *flagStorage) + log, err := createLogger(logging.Level(*flagVerbosity)) if err != nil { fmt.Fprintln(os.Stderr, err) return 1 } + + env, err := NewEnv(log, *flagConfPath, *flagStorage) + if err != nil { + log.Error().Println(err) + return 1 + } defer env.Close() remaining := make([]string, 0) @@ -80,3 +88,12 @@ func Main() int { return cmd(env, remaining[1:]) } + +func createLogger(level logging.Level) (log *logging.Log, err error) { + if level < logging.LQuiet || level > logging.LDebug { + level = logging.LDebug + return nil, fmt.Errorf("verbosity %d is out of range", level) + } + + return logging.NewLog(os.Stderr, level), nil +} -- cgit v1.2.3-54-g00ecf