88 "math/rand"
99 "net/http"
1010 "os"
11+ "strings"
1112 "syscall"
1213 "time"
1314
@@ -29,11 +30,11 @@ import (
2930 "github.com/peterbourgon/ff/v2/ffcli"
3031 "github.com/tevino/abool"
3132 "go.uber.org/zap"
32- "go.uber.org/zap/zapcore"
3333 "golang.org/x/oauth2"
3434 "moul.io/godev"
3535 "moul.io/hcfilters"
3636 "moul.io/u"
37+ "moul.io/zapconfig"
3738)
3839
3940func main () {
@@ -48,6 +49,7 @@ func yolo(args []string) error {
4849 log .SetFlags (0 )
4950 var (
5051 verbose bool
52+ logFormat string
5153 devMode bool
5254 withCache bool
5355 maxBuilds int
@@ -83,6 +85,7 @@ func yolo(args []string) error {
8385 rand .Seed (time .Now ().UnixNano ())
8486 rootFlagSet .SetOutput (os .Stderr )
8587 rootFlagSet .BoolVar (& verbose , "v" , false , "increase log verbosity" )
88+ rootFlagSet .StringVar (& logFormat , "log-format" , "console" , strings .Join (zapconfig .AvailablePresets , ", " ))
8689 serverFlagSet .BoolVar (& devMode , "dev-mode" , false , "enable insecure helpers" )
8790 serverFlagSet .BoolVar (& withCache , "with-cache" , false , "enable API caching" )
8891 serverFlagSet .StringVar (& buildkiteToken , "buildkite-token" , "" , "BuildKite API Token" )
@@ -117,7 +120,7 @@ func yolo(args []string) error {
117120 FlagSet : serverFlagSet ,
118121 Options : []ff.Option {ff .WithEnvVarNoPrefix ()},
119122 Exec : func (ctx context.Context , _ []string ) error {
120- logger , err := loggerFromArgs (verbose )
123+ logger , err := loggerFromArgs (verbose , logFormat )
121124 if err != nil {
122125 return err
123126 }
@@ -245,7 +248,7 @@ func yolo(args []string) error {
245248 FlagSet : storeFlagSet ,
246249 Options : []ff.Option {ff .WithEnvVarNoPrefix ()},
247250 Exec : func (_ context.Context , _ []string ) error {
248- logger , err := loggerFromArgs (verbose )
251+ logger , err := loggerFromArgs (verbose , logFormat )
249252 if err != nil {
250253 return err
251254 }
@@ -282,7 +285,7 @@ func yolo(args []string) error {
282285 FlagSet : storeFlagSet ,
283286 Options : []ff.Option {ff .WithEnvVarNoPrefix ()},
284287 Exec : func (_ context.Context , _ []string ) error {
285- logger , err := loggerFromArgs (verbose )
288+ logger , err := loggerFromArgs (verbose , logFormat )
286289 if err != nil {
287290 return err
288291 }
@@ -359,15 +362,16 @@ func buildkiteClientFromArgs(token string) (*buildkite.Client, error) {
359362 return bkc , nil
360363}
361364
362- func loggerFromArgs (verbose bool ) (* zap.Logger , error ) {
363- config := zap . NewDevelopmentConfig ()
365+ func loggerFromArgs (verbose bool , logFormat string ) (* zap.Logger , error ) {
366+ config := zapconfig. Configurator {}
364367 if verbose {
365- config .Level . SetLevel (zap .DebugLevel )
368+ config .SetLevel (zap .DebugLevel )
366369 } else {
367- config .Level .SetLevel (zap .InfoLevel )
370+ config .SetLevel (zap .InfoLevel )
371+ }
372+ if logFormat != "" {
373+ config .SetPreset (logFormat )
368374 }
369- config .DisableStacktrace = true
370- config .EncoderConfig .EncodeLevel = zapcore .CapitalColorLevelEncoder
371375 return config .Build ()
372376}
373377
0 commit comments