Skip to content

Commit 3f7d023

Browse files
authored
Merge pull request #90 from soemiran/feature/log_json
feat: Ability to have JSON log format
2 parents 51391b5 + a19500f commit 3f7d023

File tree

2 files changed

+13
-3
lines changed

2 files changed

+13
-3
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ Flags:
2020
-h, --help help for albedo
2121
-p, --port int port to listen on (default 8080)
2222
--debug log debug information
23+
--json format logs as JSON
2324
```
2425

2526
## Usage as a library

cmd/root.go

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)