@@ -23,6 +23,7 @@ func NewRootCommand() *cobra.Command {
2323 rootCmd .PersistentFlags ().IntP ("port" , "p" , 8080 , "port to listen on" )
2424 rootCmd .PersistentFlags ().StringP ("bind" , "b" , "0.0.0.0" , "address to bind to" )
2525 rootCmd .PersistentFlags ().Bool ("debug" , false , "Log debugging information" )
26+ rootCmd .PersistentFlags ().Bool ("json" , false , "Use JSON log format instead of text" )
2627
2728 return rootCmd
2829}
@@ -31,11 +32,19 @@ func runE(cmd *cobra.Command, _ []string) error {
3132 port , _ := cmd .Flags ().GetInt ("port" )
3233 binding , _ := cmd .Flags ().GetString ("bind" )
3334 debug , _ := cmd .Flags ().GetBool ("debug" )
35+ jsonLogFormat , _ := cmd .Flags ().GetBool ("json" )
36+ logLevel := slog .LevelInfo
3437 if debug {
35- handler := slog .NewTextHandler (os .Stdout , & slog.HandlerOptions {Level : slog .LevelDebug })
36- logger := slog .New (handler )
37- slog .SetDefault (logger )
38+ logLevel = slog .LevelDebug
3839 }
40+ var handler slog.Handler
41+ if jsonLogFormat {
42+ handler = slog .NewJSONHandler (os .Stdout , & slog.HandlerOptions {Level : logLevel })
43+ } else {
44+ handler = slog .NewTextHandler (os .Stdout , & slog.HandlerOptions {Level : logLevel })
45+ }
46+ logger := slog .New (handler )
47+ slog .SetDefault (logger )
3948
4049 server .Start (binding , port )
4150 return nil
0 commit comments