-1
conf/config.example.toml
-1
conf/config.example.toml
-1
src/config.go
-1
src/config.go
···
63
63
Insecure bool `toml:"-" env:"insecure"`
64
64
Features []string `toml:"features"`
65
65
LogFormat string `toml:"log-format" default:"text"`
66
-
LogLevel string `toml:"log-level" default:"info"`
67
66
Server ServerConfig `toml:"server"`
68
67
Wildcard []WildcardConfig `toml:"wildcard"`
69
68
Fallback FallbackConfig `toml:"fallback"`
+2
-31
src/observe.go
+2
-31
src/observe.go
···
13
13
"os"
14
14
"runtime/debug"
15
15
"strconv"
16
-
"strings"
17
16
"sync"
18
17
"time"
19
18
···
62
61
63
62
logHandlers := []slog.Handler{}
64
63
65
-
logLevel := slog.LevelInfo
66
-
switch strings.ToLower(config.LogLevel) {
67
-
case "debug":
68
-
logLevel = slog.LevelDebug
69
-
case "info":
70
-
logLevel = slog.LevelInfo
71
-
case "warn":
72
-
logLevel = slog.LevelWarn
73
-
case "error":
74
-
logLevel = slog.LevelError
75
-
default:
76
-
log.Println("unknown log level", config.LogLevel)
77
-
}
78
-
79
64
switch config.LogFormat {
80
65
case "none":
81
66
// nothing to do
82
67
case "text":
83
68
logHandlers = append(logHandlers,
84
-
slog.NewTextHandler(os.Stderr, &slog.HandlerOptions{Level: logLevel}))
69
+
slog.NewTextHandler(os.Stderr, &slog.HandlerOptions{}))
85
70
case "json":
86
71
logHandlers = append(logHandlers,
87
-
slog.NewJSONHandler(os.Stderr, &slog.HandlerOptions{Level: logLevel}))
72
+
slog.NewJSONHandler(os.Stderr, &slog.HandlerOptions{}))
88
73
default:
89
74
log.Println("unknown log format", config.LogFormat)
90
75
}
···
93
78
var err error
94
79
syslogHandler, err = syslog.NewHandler(&syslog.HandlerOptions{
95
80
Address: syslogAddr,
96
-
Level: logLevel,
97
81
AppName: "git-pages",
98
82
StructuredDataID: "git-pages",
99
83
})
···
154
138
if enableLogs {
155
139
logHandlers = append(logHandlers, sentryslog.Option{
156
140
AddSource: true,
157
-
LogLevel: levelsFromMinimum(logLevel),
158
141
}.NewSentryHandler(context.Background()))
159
142
}
160
143
}
161
144
162
145
slog.SetDefault(slog.New(slogmulti.Fanout(logHandlers...)))
163
-
}
164
-
165
-
// From sentryslog, because for some reason they don't make it public.
166
-
func levelsFromMinimum(minLevel slog.Level) []slog.Level {
167
-
allLevels := []slog.Level{slog.LevelDebug, slog.LevelInfo, slog.LevelWarn, slog.LevelError, sentryslog.LevelFatal}
168
-
var result []slog.Level
169
-
for _, level := range allLevels {
170
-
if level >= minLevel {
171
-
result = append(result, level)
172
-
}
173
-
}
174
-
return result
175
146
}
176
147
177
148
func FiniObservability() {