...

Source file src/github.com/sagikazarmark/slog-shim/logger_120.go

Documentation: github.com/sagikazarmark/slog-shim

     1  // Copyright 2022 The Go Authors. All rights reserved.
     2  // Use of this source code is governed by a BSD-style
     3  // license that can be found in the LICENSE file.
     4  
     5  //go:build !go1.21
     6  
     7  package slog
     8  
     9  import (
    10  	"context"
    11  	"log"
    12  
    13  	"golang.org/x/exp/slog"
    14  )
    15  
    16  // Default returns the default Logger.
    17  func Default() *Logger { return slog.Default() }
    18  
    19  // SetDefault makes l the default Logger.
    20  // After this call, output from the log package's default Logger
    21  // (as with [log.Print], etc.) will be logged at LevelInfo using l's Handler.
    22  func SetDefault(l *Logger) {
    23  	slog.SetDefault(l)
    24  }
    25  
    26  // A Logger records structured information about each call to its
    27  // Log, Debug, Info, Warn, and Error methods.
    28  // For each call, it creates a Record and passes it to a Handler.
    29  //
    30  // To create a new Logger, call [New] or a Logger method
    31  // that begins "With".
    32  type Logger = slog.Logger
    33  
    34  // New creates a new Logger with the given non-nil Handler.
    35  func New(h Handler) *Logger {
    36  	return slog.New(h)
    37  }
    38  
    39  // With calls Logger.With on the default logger.
    40  func With(args ...any) *Logger {
    41  	return slog.With(args...)
    42  }
    43  
    44  // NewLogLogger returns a new log.Logger such that each call to its Output method
    45  // dispatches a Record to the specified handler. The logger acts as a bridge from
    46  // the older log API to newer structured logging handlers.
    47  func NewLogLogger(h Handler, level Level) *log.Logger {
    48  	return slog.NewLogLogger(h, level)
    49  }
    50  
    51  // Debug calls Logger.Debug on the default logger.
    52  func Debug(msg string, args ...any) {
    53  	slog.Debug(msg, args...)
    54  }
    55  
    56  // DebugContext calls Logger.DebugContext on the default logger.
    57  func DebugContext(ctx context.Context, msg string, args ...any) {
    58  	slog.DebugContext(ctx, msg, args...)
    59  }
    60  
    61  // Info calls Logger.Info on the default logger.
    62  func Info(msg string, args ...any) {
    63  	slog.Info(msg, args...)
    64  }
    65  
    66  // InfoContext calls Logger.InfoContext on the default logger.
    67  func InfoContext(ctx context.Context, msg string, args ...any) {
    68  	slog.InfoContext(ctx, msg, args...)
    69  }
    70  
    71  // Warn calls Logger.Warn on the default logger.
    72  func Warn(msg string, args ...any) {
    73  	slog.Warn(msg, args...)
    74  }
    75  
    76  // WarnContext calls Logger.WarnContext on the default logger.
    77  func WarnContext(ctx context.Context, msg string, args ...any) {
    78  	slog.WarnContext(ctx, msg, args...)
    79  }
    80  
    81  // Error calls Logger.Error on the default logger.
    82  func Error(msg string, args ...any) {
    83  	slog.Error(msg, args...)
    84  }
    85  
    86  // ErrorContext calls Logger.ErrorContext on the default logger.
    87  func ErrorContext(ctx context.Context, msg string, args ...any) {
    88  	slog.ErrorContext(ctx, msg, args...)
    89  }
    90  
    91  // Log calls Logger.Log on the default logger.
    92  func Log(ctx context.Context, level Level, msg string, args ...any) {
    93  	slog.Log(ctx, level, msg, args...)
    94  }
    95  
    96  // LogAttrs calls Logger.LogAttrs on the default logger.
    97  func LogAttrs(ctx context.Context, level Level, msg string, attrs ...Attr) {
    98  	slog.LogAttrs(ctx, level, msg, attrs...)
    99  }
   100  

View as plain text