summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/gobang.go20
-rw-r--r--tests/gobang.go33
2 files changed, 40 insertions, 13 deletions
diff --git a/src/gobang.go b/src/gobang.go
index a8707a1..fc8e2f0 100644
--- a/src/gobang.go
+++ b/src/gobang.go
@@ -26,13 +26,13 @@ import (
-type logLevel int8
+type LogLevel int8
const (
- LevelNone logLevel = 0
- LevelError logLevel = 1
- LevelWarning logLevel = 2
- LevelInfo logLevel = 3
- LevelDebug logLevel = 4
+ LevelNone LogLevel = 0
+ LevelError LogLevel = 1
+ LevelWarning LogLevel = 2
+ LevelInfo LogLevel = 3
+ LevelDebug LogLevel = 4
)
@@ -84,7 +84,7 @@ var timeMutex sync.Mutex
// Local variables
var (
- level logLevel = LevelInfo
+ level LogLevel = LevelInfo
emitMetric bool = true
hostname string
Version = version
@@ -768,7 +768,7 @@ func setLoggerOutput(w io.Writer, args ...any) {
).With(args...))
}
-func levelFromString(name string, fallback logLevel) logLevel {
+func levelFromString(name string, fallback LogLevel) LogLevel {
switch strings.ToUpper(name) {
case "NONE":
return LevelNone
@@ -789,6 +789,10 @@ func setLogLevel() {
level = levelFromString(os.Getenv("LOG_LEVEL"), level)
}
+func SetLevel(l LogLevel) {
+ level = l
+}
+
func setMetric() {
if os.Getenv("NO_METRIC") != "" {
emitMetric = false
diff --git a/tests/gobang.go b/tests/gobang.go
index ef07271..a1e3bb7 100644
--- a/tests/gobang.go
+++ b/tests/gobang.go
@@ -568,7 +568,7 @@ func test_anyArr() {
func testLog(
levelName string,
- filterLevel logLevel,
+ filterLevel LogLevel,
fn func(string, string, ...any),
) {
savedLogger := slog.Default()
@@ -627,7 +627,7 @@ func testLog(
level = savedLevel
}
-func testNoLog(filterLevel logLevel, fn func(string, string, ...any)) {
+func testNoLog(filterLevel LogLevel, fn func(string, string, ...any)) {
savedLogger := slog.Default()
savedLevel := level
@@ -1113,7 +1113,7 @@ func test_levelFromString() {
values := []string { "NONE", "ERROR", "WARNING", "INFO", "DEBUG" }
Testing("ok for expected values", func() {
for _, s := range values {
- var fallback logLevel = 123
+ var fallback LogLevel = 123
theLevel := levelFromString(s, fallback)
notFallback :=
theLevel >= LevelNone &&
@@ -1124,7 +1124,7 @@ func test_levelFromString() {
})
Testing("fallback for unexpected values", func() {
- var fallback logLevel = 123
+ var fallback LogLevel = 123
theLevel := levelFromString(string(Random(10)), fallback)
AssertEqual(theLevel, fallback)
})
@@ -1136,7 +1136,7 @@ func test_setLogLevel() {
const NAME = "LOG_LEVEL"
savedEnvvar := os.Getenv(NAME)
savedValue := level
- var fallbackValue logLevel = 123
+ var fallbackValue LogLevel = 123
Testing("noop when envvar is unset", func() {
ErrorIf(os.Unsetenv(NAME))
@@ -1169,6 +1169,28 @@ func test_setLogLevel() {
level = savedValue
}
+func test_SetLevel() {
+ TestStart("SetLevel()")
+
+ savedValue := level
+
+ Testing("the behaviour is a simple assignment", func() {
+ levels := []LogLevel {
+ LevelNone,
+ LevelError,
+ LevelWarning,
+ LevelInfo,
+ LevelDebug,
+ }
+ for _, l := range levels {
+ SetLevel(l)
+ AssertEqual(l, level)
+ }
+ })
+
+ level = savedValue
+}
+
func test_setMetric() {
TestStart("setMetric()")
@@ -1271,6 +1293,7 @@ func t4() {
test_setLoggerOutput()
test_levelFromString()
test_setLogLevel()
+ test_SetLevel()
test_setMetric()
test_FatalIf()
test_Assert()