Skip to content

Commit 0b1bbbb

Browse files
authored
chore(console): support IsTerminal (#19)
1 parent 8448be2 commit 0b1bbbb

File tree

3 files changed

+14
-3
lines changed

3 files changed

+14
-3
lines changed

go.mod

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ go 1.13
44

55
require (
66
github.com/gin-gonic/gin v1.7.2
7+
github.com/mattn/go-isatty v0.0.12
78
github.com/rs/zerolog v1.23.0
89
github.com/stretchr/testify v1.7.0
910
)

logger.go

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,25 @@ package logger
33
import (
44
"io"
55
"net/http"
6+
"os"
67
"regexp"
78
"time"
89

910
"github.com/gin-gonic/gin"
11+
"github.com/mattn/go-isatty"
1012
"github.com/rs/zerolog"
1113
)
1214

1315
func defaultLogger(c *gin.Context, out io.Writer, latency time.Duration) zerolog.Logger {
14-
logger := zerolog.New(out).With().
16+
isTerm := isatty.IsTerminal(os.Stdout.Fd())
17+
logger := zerolog.New(out).
18+
Output(
19+
zerolog.ConsoleWriter{
20+
Out: out,
21+
NoColor: !isTerm,
22+
},
23+
).
24+
With().
1525
Timestamp().
1626
Int("status", c.Writer.Status()).
1727
Str("method", c.Request.Method).

logger_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,14 +56,14 @@ func TestLogger(t *testing.T) {
5656
assert.Contains(t, buffer.String(), "400")
5757
assert.Contains(t, buffer.String(), "POST")
5858
assert.Contains(t, buffer.String(), "/example")
59-
assert.Contains(t, buffer.String(), "warn")
59+
assert.Contains(t, buffer.String(), "WRN")
6060

6161
buffer.Reset()
6262
performRequest(r, "PUT", "/example?a=100")
6363
assert.Contains(t, buffer.String(), "502")
6464
assert.Contains(t, buffer.String(), "PUT")
6565
assert.Contains(t, buffer.String(), "/example")
66-
assert.Contains(t, buffer.String(), "error")
66+
assert.Contains(t, buffer.String(), "ERR")
6767
}
6868

6969
func TestLoggerWithLogger(t *testing.T) {

0 commit comments

Comments
 (0)