mirror of
https://github.com/pomerium/pomerium.git
synced 2025-04-29 18:36:30 +02:00
* config: add customization options for logging * config: validate log fields * proxy: add support for logging http request headers * log subset of headers * fix test name * dont use log.HTTPHeaders for access logs * canonicalize http/2 headers
63 lines
1.2 KiB
Go
63 lines
1.2 KiB
Go
package log
|
|
|
|
import (
|
|
"bytes"
|
|
"strings"
|
|
"testing"
|
|
|
|
"github.com/rs/zerolog"
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestHTTPHeaders(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
type A = []string
|
|
type M = map[string]string
|
|
|
|
t.Run("all", func(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
var buf bytes.Buffer
|
|
log := zerolog.New(&buf)
|
|
evt := log.Info()
|
|
evt = HTTPHeaders(evt, A{"headers"}, M{
|
|
"a": "1",
|
|
"b": "2",
|
|
"c": "3",
|
|
})
|
|
evt.Send()
|
|
|
|
assert.Equal(t, `{"level":"info","headers":{"A":"1","B":"2","C":"3"}}`, strings.TrimSpace(buf.String()))
|
|
})
|
|
t.Run("none", func(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
var buf bytes.Buffer
|
|
log := zerolog.New(&buf)
|
|
evt := log.Info()
|
|
evt = HTTPHeaders(evt, A{"a", "b", "c"}, M{
|
|
"a": "1",
|
|
"b": "2",
|
|
"c": "3",
|
|
})
|
|
evt.Send()
|
|
|
|
assert.Equal(t, `{"level":"info"}`, strings.TrimSpace(buf.String()))
|
|
})
|
|
t.Run("two", func(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
var buf bytes.Buffer
|
|
log := zerolog.New(&buf)
|
|
evt := log.Info()
|
|
evt = HTTPHeaders(evt, A{"headers.a", "headers.C"}, M{
|
|
"a": "1",
|
|
"b": "2",
|
|
"c": "3",
|
|
})
|
|
evt.Send()
|
|
|
|
assert.Equal(t, `{"level":"info","headers":{"A":"1","C":"3"}}`, strings.TrimSpace(buf.String()))
|
|
})
|
|
}
|