diff options
| author | Xe Iaso <me@xeiaso.net> | 2023-07-26 14:24:54 -0400 |
|---|---|---|
| committer | Xe Iaso <me@xeiaso.net> | 2023-07-26 14:24:54 -0400 |
| commit | 319d0244c9418a02c4abeaeec79054320807fd7f (patch) | |
| tree | a79858504c27b032084e2bc8080d484188b20029 /internal | |
| parent | bf25ec3d842f814f0d146567d0a1aeba7d9382dd (diff) | |
| download | x-319d0244c9418a02c4abeaeec79054320807fd7f.tar.xz x-319d0244c9418a02c4abeaeec79054320807fd7f.zip | |
fix builds, start to use internal slog package
Signed-off-by: Xe Iaso <me@xeiaso.net>
Diffstat (limited to 'internal')
| -rw-r--r-- | internal/internal.go | 2 | ||||
| -rw-r--r-- | internal/slog/slog.go | 38 |
2 files changed, 40 insertions, 0 deletions
diff --git a/internal/internal.go b/internal/internal.go index 8eedfab..1f0a887 100644 --- a/internal/internal.go +++ b/internal/internal.go @@ -14,6 +14,7 @@ import ( "within.website/x/internal/confyg/flagconfyg" "within.website/x/internal/flagenv" "within.website/x/internal/manpage" + "within.website/x/internal/slog" // Debug routes _ "expvar" @@ -63,6 +64,7 @@ func HandleStartup() { flagconfyg.CmdParse(ctx, *config) } flag.Parse() + slog.Init() if *licenseShow { fmt.Printf("Licenses for %v\n", os.Args) diff --git a/internal/slog/slog.go b/internal/slog/slog.go new file mode 100644 index 0000000..70d45bb --- /dev/null +++ b/internal/slog/slog.go @@ -0,0 +1,38 @@ +// Package slog is my set of wrappers around package slog. +package slog + +import ( + "flag" + "fmt" + "os" + "sync" + + "golang.org/x/exp/slog" +) + +var ( + slogLevel = flag.String("slog-level", "INFO", "log level") + + lock sync.Mutex + + // The current slog handler. + Handler slog.Handler +) + +func Init() { + var programLevel slog.Level + if err := (&programLevel).UnmarshalText([]byte(*slogLevel)); err != nil { + fmt.Fprintf(os.Stderr, "invalid log level %s: %v, using info\n", *slogLevel, err) + programLevel = slog.LevelInfo + } + + h := slog.NewJSONHandler(os.Stderr, &slog.HandlerOptions{ + AddSource: true, + Level: programLevel, + }) + slog.SetDefault(slog.New(h)) + + lock.Lock() + defer lock.Unlock() + Handler = h +} |
