From 36a701420c3f4688b3746b603487e633bf27254e Mon Sep 17 00:00:00 2001 From: Charles Iliya Krempeaux Date: Thu, 4 Feb 2021 18:25:22 -0800 Subject: [PATCH] logger --- internal_logger.go | 18 +++++++++--------- internal_logger_debug.go | 2 +- internal_logger_error.go | 2 +- internal_logger_fatal.go | 2 +- internal_logger_highlight.go | 2 +- internal_logger_inform.go | 2 +- internal_logger_mute.go | 33 +++++++++++++++++++++++++++++++++ internal_logger_panic.go | 2 +- internal_logger_prefix.go | 2 +- internal_logger_prefix_test.go | 2 +- internal_logger_trace.go | 2 +- internal_logger_warn.go | 2 +- logger.go | 8 ++++++++ logger_test.go | 2 +- 14 files changed, 61 insertions(+), 20 deletions(-) create mode 100644 internal_logger_mute.go diff --git a/internal_logger.go b/internal_logger.go index e1cb2f9..5bd7c4e 100644 --- a/internal_logger.go +++ b/internal_logger.go @@ -10,14 +10,14 @@ type internalLogger struct { writer io.Writer - canNotLogDebug bool - canNotLogError bool - canNotLogFatal bool - canNotLogHighlight bool - canNotLogInform bool - canNotLogPanic bool - canNotLogTrace bool - canNotLogWarn bool + mutedDebug bool + mutedError bool + mutedFatal bool + mutedHighlight bool + mutedInform bool + mutedPanic bool + mutedTrace bool + mutedWarn bool } func NewLogger(writer io.Writer, parameters ...string) Logger { @@ -34,5 +34,5 @@ func NewLogger(writer io.Writer, parameters ...string) Logger { } } - return logger + return &logger } diff --git a/internal_logger_debug.go b/internal_logger_debug.go index 0f51e41..c6fa89c 100644 --- a/internal_logger_debug.go +++ b/internal_logger_debug.go @@ -7,7 +7,7 @@ import ( ) func (receiver internalLogger) CanLogDebug() bool { - return !receiver.canNotLogDebug + return !receiver.mutedDebug } func (receiver internalLogger) Debug(a ...interface{}) { diff --git a/internal_logger_error.go b/internal_logger_error.go index c3aea1b..cce55cc 100644 --- a/internal_logger_error.go +++ b/internal_logger_error.go @@ -7,7 +7,7 @@ import ( ) func (receiver internalLogger) CanLogError() bool { - return !receiver.canNotLogError + return !receiver.mutedError } func (receiver internalLogger) Error(a ...interface{}) error { diff --git a/internal_logger_fatal.go b/internal_logger_fatal.go index 04a2894..8971903 100644 --- a/internal_logger_fatal.go +++ b/internal_logger_fatal.go @@ -8,7 +8,7 @@ import ( ) func (receiver internalLogger) CanLogFatal() bool { - return !receiver.canNotLogFatal + return !receiver.mutedFatal } func (receiver internalLogger) Fatal(a ...interface{}) { diff --git a/internal_logger_highlight.go b/internal_logger_highlight.go index d8a1712..132c745 100644 --- a/internal_logger_highlight.go +++ b/internal_logger_highlight.go @@ -7,7 +7,7 @@ import ( ) func (receiver internalLogger) CanLogHighlight() bool { - return !receiver.canNotLogHighlight + return !receiver.mutedHighlight } func (receiver internalLogger) Highlight(a ...interface{}) { diff --git a/internal_logger_inform.go b/internal_logger_inform.go index 17bbcaf..4840bb9 100644 --- a/internal_logger_inform.go +++ b/internal_logger_inform.go @@ -7,7 +7,7 @@ import ( ) func (receiver internalLogger) CanLogInform() bool { - return !receiver.canNotLogInform + return !receiver.mutedInform } func (receiver internalLogger) Inform(a ...interface{}) { diff --git a/internal_logger_mute.go b/internal_logger_mute.go new file mode 100644 index 0000000..e8c8b1b --- /dev/null +++ b/internal_logger_mute.go @@ -0,0 +1,33 @@ +package flog + +func (receiver *internalLogger) MuteDebug() { + receiver.mutedDebug = true +} + +func (receiver *internalLogger) MuteError() { + receiver.mutedError = true +} + +func (receiver *internalLogger) MuteFatal() { + receiver.mutedFatal = true +} + +func (receiver *internalLogger) MuteHighlight() { + receiver.mutedHighlight = true +} + +func (receiver *internalLogger) MuteInform() { + receiver.mutedInform = true +} + +func (receiver *internalLogger) MutePanic() { + receiver.mutedPanic = true +} + +func (receiver *internalLogger) MuteTrace() { + receiver.mutedTrace = true +} + +func (receiver *internalLogger) MuteWarn() { + receiver.mutedWarn = true +} diff --git a/internal_logger_panic.go b/internal_logger_panic.go index a23b36a..7c29c2e 100644 --- a/internal_logger_panic.go +++ b/internal_logger_panic.go @@ -7,7 +7,7 @@ import ( ) func (receiver internalLogger) CanLogPanic() bool { - return !receiver.canNotLogPanic + return !receiver.mutedPanic } func (receiver internalLogger) Panic(a ...interface{}) { diff --git a/internal_logger_prefix.go b/internal_logger_prefix.go index 030c933..3f0142b 100644 --- a/internal_logger_prefix.go +++ b/internal_logger_prefix.go @@ -19,5 +19,5 @@ func (receiver internalLogger) Prefix(newprefix ...string) Logger { var logger internalLogger = receiver logger.prefix += prefix - return logger + return &logger } diff --git a/internal_logger_prefix_test.go b/internal_logger_prefix_test.go index 06810e2..29193bc 100644 --- a/internal_logger_prefix_test.go +++ b/internal_logger_prefix_test.go @@ -64,7 +64,7 @@ func TestLoggerPrefix(t *testing.T) { newLogger := logger.Prefix(test.NewPrefix...) - newInternalLogger, casted := newLogger.(internalLogger) + newInternalLogger, casted := newLogger.(*internalLogger) if !casted { t.Errorf("For test #%d, could not cast to flog.internalLogger.", testNumber) t.Logf("TYPE: %T", newLogger) diff --git a/internal_logger_trace.go b/internal_logger_trace.go index 0e6a73e..5b7ba4a 100644 --- a/internal_logger_trace.go +++ b/internal_logger_trace.go @@ -7,7 +7,7 @@ import ( ) func (receiver internalLogger) CanLogTrace() bool { - return !receiver.canNotLogTrace + return !receiver.mutedTrace } func (receiver internalLogger) Trace(a ...interface{}) { diff --git a/internal_logger_warn.go b/internal_logger_warn.go index 24d6d16..6b4b8d2 100644 --- a/internal_logger_warn.go +++ b/internal_logger_warn.go @@ -7,7 +7,7 @@ import ( ) func (receiver internalLogger) CanLogWarn() bool { - return !receiver.canNotLogWarn + return !receiver.mutedWarn } func (receiver internalLogger) Warn(a ...interface{}) { diff --git a/logger.go b/logger.go index cf58424..8ccfb8c 100644 --- a/logger.go +++ b/logger.go @@ -4,34 +4,42 @@ type Logger interface { CanLogDebug() bool Debug(...interface{}) Debugf(string, ...interface{}) + MuteDebug() CanLogError() bool Error(...interface{}) error Errorf(string, ...interface{}) error + MuteError() CanLogFatal() bool Fatal(...interface{}) Fatalf(string, ...interface{}) + MuteFatal() CanLogHighlight() bool Highlight(...interface{}) Highlightf(string, ...interface{}) + MuteHighlight() CanLogInform() bool Inform(...interface{}) Informf(string, ...interface{}) + MuteInform() CanLogPanic() bool Panic(...interface{}) Panicf(string, ...interface{}) + MutePanic() CanLogTrace() bool Trace(...interface{}) Tracef(string, ...interface{}) + MuteTrace() CanLogWarn() bool Warn(...interface{}) Warnf(string, ...interface{}) + MuteWarn() Prefix(...string) Logger } diff --git a/logger_test.go b/logger_test.go index f37cf96..4f29605 100644 --- a/logger_test.go +++ b/logger_test.go @@ -6,7 +6,7 @@ import ( func TestInternalLoggerIsLogger(t *testing.T) { - var x Logger = internalLogger{} // THIS IS WHAT ACTUALLY MATTERS. + var x Logger = &internalLogger{} // THIS IS WHAT ACTUALLY MATTERS. if nil == x { t.Error("This should never happen.")