From 8ac08a0eec1e59a10dd1dab4513d4640013cdb3b Mon Sep 17 00:00:00 2001 From: Michael Yang Date: Wed, 31 Jan 2024 14:59:32 -0800 Subject: [PATCH] update slog handler options - consistent format by using text handler for debug and non-debug - truncate source file to just the file name --- server/routes.go | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/server/routes.go b/server/routes.go index 797c67a2..01a898a8 100644 --- a/server/routes.go +++ b/server/routes.go @@ -938,13 +938,26 @@ func (s *Server) GenerateRoutes() http.Handler { } func Serve(ln net.Listener) error { + level := slog.LevelInfo if debug := os.Getenv("OLLAMA_DEBUG"); debug != "" { - var programLevel = new(slog.LevelVar) - h := slog.NewTextHandler(os.Stderr, &slog.HandlerOptions{Level: programLevel, AddSource: true}) - slog.SetDefault(slog.New(h)) - programLevel.Set(slog.LevelDebug) - slog.Debug("Debug logging enabled") + level = slog.LevelDebug } + + handler := slog.NewTextHandler(os.Stderr, &slog.HandlerOptions{ + Level: level, + AddSource: true, + ReplaceAttr: func(_ []string, attr slog.Attr) slog.Attr { + if attr.Key == slog.SourceKey { + source := attr.Value.Any().(*slog.Source) + source.File = filepath.Base(source.File) + } + + return attr + }, + }) + + slog.SetDefault(slog.New(handler)) + if noprune := os.Getenv("OLLAMA_NOPRUNE"); noprune == "" { // clean up unused layers and manifests if err := PruneLayers(); err != nil {