package log

import (
	"context"
	"github.com/UpmeshLTD/urus-aio/infrastructure/logging"
)

// NewContext returns a new Context with given logger.
func NewContext(ctx context.Context, logger Logger) context.Context {
	return logging.NewContext(ctx, logger)
}

// FromContext returns the logger associated with a context.
// It returns the default Logger if no Logger exists.
func FromContext(ctx context.Context) Logger {
	return logging.FromContext(ctx)
}

// SetDefaultLogger sets the default logger.
func SetDefaultLogger(logger Logger) {
	logging.SetDefaultLogger(logger)
}

// With returns a new contextual Logger with additional context args.
func With(logger Logger, args ...interface{}) Logger {
	return logger.With(args...)
}
