diff options
author | Luke Shumaker <lukeshu@lukeshu.com> | 2022-12-25 14:03:02 -0700 |
---|---|---|
committer | Luke Shumaker <lukeshu@lukeshu.com> | 2022-12-26 23:55:42 -0700 |
commit | 31341857abc73334852d3b888f4fb558d8ed3c61 (patch) | |
tree | d1773f68fd62fc3571cb8aaa0d0b38bffb3c3392 /lib/textui | |
parent | 9fe871dcf2a15afa66df52e927e9c402b24231fe (diff) |
Factor logger code from main.go in to textui
Diffstat (limited to 'lib/textui')
-rw-r--r-- | lib/textui/log.go | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/lib/textui/log.go b/lib/textui/log.go new file mode 100644 index 0000000..cee51db --- /dev/null +++ b/lib/textui/log.go @@ -0,0 +1,33 @@ +// Copyright (C) 2022 Luke Shumaker <lukeshu@lukeshu.com> +// +// SPDX-License-Identifier: GPL-2.0-or-later + +package textui + +import ( + "github.com/datawire/dlib/dlog" + "github.com/sirupsen/logrus" + "github.com/spf13/pflag" +) + +type LogLevelFlag struct { + logrus.Level +} + +var _ pflag.Value = (*LogLevelFlag)(nil) + +// Type implements pflag.Value. +func (lvl *LogLevelFlag) Type() string { return "loglevel" } + +// Type implements pflag.Value. +func (lvl *LogLevelFlag) Set(str string) error { + var err error + lvl.Level, err = logrus.ParseLevel(str) + return err +} + +func NewLogger(lvl logrus.Level) dlog.Logger { + logger := logrus.New() + logger.SetLevel(lvl) + return dlog.WrapLogrus(logger) +} |