@@ -29,10 +29,18 @@ import (
2929 "os"
3030 "strings"
3131 "sync"
32+ "time"
3233
3334 "github.com/rs/zerolog"
3435)
3536
37+ type TimeFormat int
38+
39+ const (
40+ TimeFormatLocal TimeFormat = 0
41+ TimeFormatUTC TimeFormat = 1
42+ )
43+
3644var (
3745 // The defaultLevels list is used during development to increase the
3846 // default level for components that we care a little less about.
@@ -72,14 +80,14 @@ type loggingService struct {
7280}
7381
7482type LoggerOutputOptions struct {
75- Color bool // Produce colored logs
76- JSON bool // Project JSON messages
77- Stderr bool // Write logs to stderr
78- LogFile string // Path of file to write to
83+ Color bool // Produce colored logs
84+ TimeFormat TimeFormat // Instructs how to print time in logs
85+ Stderr bool // Write logs to stderr
86+ LogFile string // Path of file to write to
7987}
8088
8189func configureLogger (lg zerolog.ConsoleWriter ) zerolog.ConsoleWriter {
82- lg .TimeFormat = "2006-01-02T15:04:05-07:00"
90+ lg .TimeFormat = time . RFC3339
8391
8492 lg .FormatLevel = func (i interface {}) string {
8593 return fmt .Sprintf ("|%s|" , strings .ToUpper (fmt .Sprintf ("%s" , i )))
@@ -93,31 +101,32 @@ func NewRootLogger(options LoggerOutputOptions) (zerolog.Logger, func()) {
93101 var writers []io.Writer
94102 var errors []error
95103 var rotate func ()
104+
105+ if options .TimeFormat == TimeFormatUTC {
106+ zerolog .TimestampFunc = func () time.Time {
107+ return time .Now ().UTC ()
108+ }
109+ }
110+
96111 if options .LogFile != "" {
97112 fileWriter , err := newRotatingWriter (options .LogFile )
98113 if err != nil {
99114 errors = append (errors , err )
100115 options .Stderr = true
101116 } else {
102117 rotate = func () { fileWriter .Rotate () }
103- writer := io .Writer (fileWriter )
104- if ! options .JSON {
105- writer = configureLogger (zerolog.ConsoleWriter {
106- Out : fileWriter ,
107- NoColor : true ,
108- })
109- }
118+ writer := configureLogger (zerolog.ConsoleWriter {
119+ Out : fileWriter ,
120+ NoColor : true ,
121+ })
110122 writers = append (writers , writer )
111123 }
112124 }
113125 if options .Stderr {
114- writer := io .Writer (os .Stderr )
115- if ! options .JSON {
116- writer = configureLogger (zerolog.ConsoleWriter {
117- Out : writer ,
118- NoColor : ! options .Color ,
119- })
120- }
126+ writer := configureLogger (zerolog.ConsoleWriter {
127+ Out : os .Stderr ,
128+ NoColor : ! options .Color ,
129+ })
121130 writers = append (writers , writer )
122131 }
123132
0 commit comments