summaryrefslogtreecommitdiff
path: root/modules/logging
diff options
context:
space:
mode:
authorFrancis Lavoie <lavofr@gmail.com>2022-10-05 00:23:14 -0400
committerGitHub <noreply@github.com>2022-10-05 00:23:14 -0400
commit9e1d964bd6af27cd96a370987a1cadc58933d19a (patch)
treed7d7773c4a2b83124a7d0c7634049c6cb60301af /modules/logging
parent2be56c526c9652911883905eb91abaf5fdf821fb (diff)
logging: Add `time_local` option to use local time instead of UTC (#5108)
Diffstat (limited to 'modules/logging')
-rw-r--r--modules/logging/encoders.go18
1 files changed, 17 insertions, 1 deletions
diff --git a/modules/logging/encoders.go b/modules/logging/encoders.go
index d8825d3..1cfab8e 100644
--- a/modules/logging/encoders.go
+++ b/modules/logging/encoders.go
@@ -127,6 +127,7 @@ type LogEncoderConfig struct {
StacktraceKey *string `json:"stacktrace_key,omitempty"`
LineEnding *string `json:"line_ending,omitempty"`
TimeFormat string `json:"time_format,omitempty"`
+ TimeLocal bool `json:"time_local,omitempty"`
DurationFormat string `json:"duration_format,omitempty"`
LevelFormat string `json:"level_format,omitempty"`
}
@@ -142,12 +143,21 @@ type LogEncoderConfig struct {
// stacktrace_key <key>
// line_ending <char>
// time_format <format>
+// time_local
// duration_format <format>
// level_format <format>
// }
func (lec *LogEncoderConfig) UnmarshalCaddyfile(d *caddyfile.Dispenser) error {
for nesting := d.Nesting(); d.NextBlock(nesting); {
subdir := d.Val()
+ switch subdir {
+ case "time_local":
+ lec.TimeLocal = true
+ if d.NextArg() {
+ return d.ArgErr()
+ }
+ continue
+ }
var arg string
if !d.AllArgs(&arg) {
return d.ArgErr()
@@ -237,7 +247,13 @@ func (lec *LogEncoderConfig) ZapcoreEncoderConfig() zapcore.EncoderConfig {
timeFormat = "02/Jan/2006:15:04:05 -0700"
}
timeFormatter = func(ts time.Time, encoder zapcore.PrimitiveArrayEncoder) {
- encoder.AppendString(ts.UTC().Format(timeFormat))
+ var time time.Time
+ if lec.TimeLocal {
+ time = ts.Local()
+ } else {
+ time = ts.UTC()
+ }
+ encoder.AppendString(time.Format(timeFormat))
}
}
cfg.EncodeTime = timeFormatter