mirror of
https://github.com/DominicBreuker/pspy.git
synced 2025-12-21 03:34:50 +00:00
introduce --debug flag to hide excessive error messages by default but allow displaying them
This commit is contained in:
@@ -16,13 +16,15 @@ type Logger struct {
|
||||
infoLogger *log.Logger
|
||||
errorLogger *log.Logger
|
||||
eventLogger *log.Logger
|
||||
debug bool
|
||||
}
|
||||
|
||||
func NewLogger() *Logger {
|
||||
func NewLogger(debug bool) *Logger {
|
||||
return &Logger{
|
||||
infoLogger: log.New(os.Stdout, "", 0),
|
||||
errorLogger: log.New(os.Stderr, "", 0),
|
||||
eventLogger: log.New(os.Stdout, "", log.Ldate|log.Ltime),
|
||||
debug: debug,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -32,8 +34,10 @@ func (l *Logger) Infof(format string, v ...interface{}) {
|
||||
}
|
||||
|
||||
// Errorf writes an error message to stderr
|
||||
func (l *Logger) Errorf(format string, v ...interface{}) {
|
||||
l.errorLogger.Printf(format, v...)
|
||||
func (l *Logger) Errorf(debug bool, format string, v ...interface{}) {
|
||||
if l.debug == debug {
|
||||
l.errorLogger.Printf(format, v...)
|
||||
}
|
||||
}
|
||||
|
||||
// Eventf writes an event with timestamp to stdout
|
||||
|
||||
@@ -13,7 +13,7 @@ const ansiPattern = "[\u001B\u009B][[\\]()#;?]*(?:(?:(?:[a-zA-Z\\d]*(?:;[a-zA-Z\
|
||||
|
||||
var ansiMatcher = regexp.MustCompile(ansiPattern)
|
||||
|
||||
var l = NewLogger()
|
||||
var l = NewLogger(true)
|
||||
|
||||
var logTests = []struct {
|
||||
logger *log.Logger
|
||||
@@ -23,8 +23,8 @@ var logTests = []struct {
|
||||
}{
|
||||
{l.infoLogger, func() { l.Infof("Info message no. %d", 1) }, "Info message no. 1\n", nil},
|
||||
{l.infoLogger, func() { l.Infof("Info message no. %d with a string %s\n", 2, "appended to it") }, "Info message no. 2 with a string appended to it\n", nil},
|
||||
{l.errorLogger, func() { l.Errorf("Error message") }, "Error message\n", nil},
|
||||
{l.errorLogger, func() { l.Errorf("Error message\n") }, "Error message\n", nil},
|
||||
{l.errorLogger, func() { l.Errorf(true, "Error message") }, "Error message\n", nil},
|
||||
{l.errorLogger, func() { l.Errorf(true, "Error message\n") }, "Error message\n", nil},
|
||||
{l.eventLogger, func() { l.Eventf(ColorNone, "Event message") }, dateFormatPattern + " Event message\n", nil},
|
||||
{l.eventLogger, func() { l.Eventf(ColorRed, "Event message") }, dateFormatPattern + " Event message\n", [][]byte{[]byte("\x1b[31;1m"), []byte("\x1b[0m")}},
|
||||
{l.eventLogger, func() { l.Eventf(ColorGreen, "Event message") }, dateFormatPattern + " Event message\n", [][]byte{[]byte("\x1b[32;1m"), []byte("\x1b[0m")}},
|
||||
|
||||
Reference in New Issue
Block a user