Documentation
¶
Index ¶
- func Debug(msg string, args ...any)
- func DebugContext(ctx context.Context, msg string, args ...any)
- func Error(msg string, args ...any)
- func ErrorContext(ctx context.Context, msg string, args ...any)
- func Info(msg string, args ...any)
- func InfoContext(ctx context.Context, msg string, args ...any)
- func ParseLevel(level string) (slog.Level, error)
- func Warn(msg string, args ...any)
- func WarnContext(ctx context.Context, msg string, args ...any)
- type ConsoleHandler
- type FilterHandler
- type Handler
- type Logger
- type MultiHandler
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func DebugContext ¶ added in v0.0.6
DebugContext calls [Logger.DebugContext] on the default logger.
func ErrorContext ¶ added in v0.0.6
ErrorContext calls [Logger.ErrorContext] on the default logger.
func InfoContext ¶ added in v0.0.6
InfoContext calls [Logger.InfoContext] on the default logger.
func ParseLevel ¶
ParseLevel parses a string into a log level
Types ¶
type ConsoleHandler ¶
type ConsoleHandler struct { Color color.Writer Source bool // contains filtered or unexported fields }
ConsoleHandler handler for printing logs to the terminal
func Console ¶
func Console(w io.Writer) *ConsoleHandler
Example ¶
package main import ( "errors" "os" "github.com/livebud/color" "github.com/matthewmueller/logs" ) func main() { console := logs.Console(os.Stdout) console.Color = color.Ignore() log := logs.New(console) log.WithGroup("grouped").Debug("debug line", "path", "console_test.go") log.Info("some info") log.Warn("some warning") log.Error("an error", "err", errors.New("oh no")) }
Output: debug: debug line grouped.path=console_test.go info: some info warn: some warning error: an error err="oh no"
func (*ConsoleHandler) Enabled ¶
Enabled is always set to true. Use log.Filter to filter out log levels
type FilterHandler ¶
type FilterHandler struct {
// contains filtered or unexported fields
}
func Filter ¶
func Filter(level slog.Level, handler slog.Handler) *FilterHandler
Filter logs by level
type Logger ¶
Example ¶
package main import ( "log/slog" "os" "github.com/livebud/color" "github.com/matthewmueller/logs" ) func main() { console := logs.Console(os.Stdout) console.Color = color.Ignore() log := logs.New(console) var logger *slog.Logger = log logger.WithGroup("hello").Debug("world", "args", 10) logger.Info("hello", "planet", "world", "args", 10) logger.Warn("hello", "planet", "world", "args", 10) logger.Error("hello world", slog.String("planet", "world"), "args", 10) }
Output: debug: world hello.args=10 info: hello planet=world args=10 warn: hello planet=world args=10 error: hello world planet=world args=10
func Default ¶
func Default() *Logger
Example ¶
package main import ( "github.com/matthewmueller/logs" ) func main() { logs.Info("hello", "planet", "world", "args", 10) // No output because default logger logs to stderr
Output:
func Discard ¶ added in v0.0.4
func Discard() *Logger
Example ¶
package main import ( "log/slog" "github.com/matthewmueller/logs" ) func main() { log := logs.Discard() var logger *slog.Logger = log logger.WithGroup("hello").Debug("world", "args", 10) logger.Info("hello", "planet", "world", "args", 10) logger.Warn("hello", "planet", "world", "args", 10) logger.Error("hello world", slog.String("planet", "world"), "args", 10) }
Output:
type MultiHandler ¶
func Multi ¶
func Multi(handlers ...slog.Handler) MultiHandler
Example ¶
package main import ( "log/slog" "os" "github.com/matthewmueller/logs" ) func main() { console := logs.Console(os.Stderr) log := slog.New(logs.Multi( logs.Filter(slog.LevelInfo, console), slog.NewJSONHandler(os.Stderr, nil), )) log.WithGroup("hello").Debug("world", "args", 10) log.Info("hello", "planet", "world", "args", 10) log.Warn("hello", "planet", "world", "args", 10) log.Error("hello world", "planet", "world", "args", 10) }
Output:
Click to show internal directories.
Click to hide internal directories.