slog: DebugLevel = -4

This adds space between Debug and Info, enabling other levels
between them. It also makes the mapping to OpenTelemetry
simpler.

Change-Id: I5e7153815373dd01ec043bfd0db72d462f3366b3
Reviewed-on: https://go-review.googlesource.com/c/exp/+/442793
Run-TryBot: Jonathan Amsterdam <jba@google.com>
Reviewed-by: Alan Donovan <adonovan@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
diff --git a/slog/level.go b/slog/level.go
index c0cb0a1..9f0f2b8 100644
--- a/slog/level.go
+++ b/slog/level.go
@@ -35,13 +35,9 @@
 // does not. But those OpenTelemetry levels can still be represented as slog
 // Levels by using the appropriate integers.
 //
-// The lack of a gap between Debug and Info doesn't follow the pattern.
-// It makes sense, though, that the first negative number is the start
-// of the Debug range.
-//
 // Names for common levels.
 const (
-	DebugLevel Level = -1
+	DebugLevel Level = -4
 	InfoLevel  Level = 0
 	WarnLevel  Level = 4
 	ErrorLevel Level = 8
@@ -65,7 +61,7 @@
 	}
 
 	switch {
-	case l <= DebugLevel:
+	case l < InfoLevel:
 		return str("DEBUG", l-DebugLevel)
 	case l < WarnLevel:
 		return str("INFO", l)
diff --git a/slog/level_test.go b/slog/level_test.go
index b9e6db1..b0a6013 100644
--- a/slog/level_test.go
+++ b/slog/level_test.go
@@ -20,7 +20,8 @@
 		{WarnLevel, "WARN"},
 		{WarnLevel - 1, "INFO+3"},
 		{InfoLevel, "INFO"},
-		{InfoLevel - 3, "DEBUG-2"},
+		{InfoLevel + 1, "INFO+1"},
+		{InfoLevel - 3, "DEBUG+1"},
 		{DebugLevel, "DEBUG"},
 		{DebugLevel - 2, "DEBUG-2"},
 	} {