logger

package
v0.0.7 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 18, 2026 License: MIT Imports: 8 Imported by: 0

Documentation

Overview

Package logger provides a modular, concurrent-safe, and colorful logging utility for GoKit applications.

It supports multiple log levels (Trace, Debug, Info, Success, Warn, Error, Fatal, Panic), customizable themes, and flexible output destinations (console, file, or both via io.MultiWriter).

Basic usage:

log := logger.New(logger.NewConfig())
log.Info("Aplicación iniciada correctamente")
log.Error("No se pudo conectar a la base de datos")

Advanced usage with file output and custom level:

cfg := logger.NewConfig()
cfg.Level = logger.DebugLevel
cfg.Writer = logger.NewMultiWriter(logger.NewConsoleWriter(), fileWriter)
log := logger.New(cfg)
log.Debug("Conectando a la base de datos...")

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrInvalidLevel    = errors.New("nivel de log inválido")
	ErrWriteFailed     = errors.New("fallo al escribir el mensaje de log")
	ErrInvalidFilePath = errors.New("ruta de archivo de log inválida o inaccesible")
)

Functions

func Debug

func Debug(message string)

func DebugWithFields added in v0.0.7

func DebugWithFields(msg string, fields map[string]interface{})

func Error

func Error(message string)

func ErrorWithFields added in v0.0.7

func ErrorWithFields(msg string, fields map[string]interface{})

func Fatal

func Fatal(message string)

func Info

func Info(message string)

func InfoWithFields added in v0.0.7

func InfoWithFields(msg string, fields map[string]interface{})

func NewConsoleWriter

func NewConsoleWriter() io.Writer

NewConsoleWriter devuelve un io.Writer que escribe en la salida estándar (consola). Es el comportamiento predeterminado, pero se expone explícitamente por claridad.

func NewFileWriter

func NewFileWriter(filePath string) (io.Writer, error)

NewFileWriter crea y devuelve un io.Writer que escribe en el archivo especificado. Si el archivo no existe, intenta crearlo. Si los directorios intermedios no existen, intenta crearlos también. El archivo se abre en modo append (añadir al final).

Ejemplo de uso:

writer, err := logger.NewFileWriter("logs/app.log")
if err != nil {
    log.Fatal(err)
}

func NewMultiWriter added in v0.0.7

func NewMultiWriter(writers ...io.Writer) io.Writer

NewMultiWriter combina múltiples destinos de escritura (por ejemplo, consola y archivo) en un único io.Writer. Cada mensaje de log se escribirá en todos los destinos proporcionados.

Ejemplo de uso (Consola + Archivo):

fileWriter, _ := logger.NewFileWriter("logs/app.log")
combinedWriter := logger.NewMultiWriter(logger.NewConsoleWriter(), fileWriter)

func Panic added in v0.0.7

func Panic(message string)

func ResetTheme added in v0.0.7

func ResetTheme()

func SetDefault

func SetDefault(l *Logger)

func SetTheme added in v0.0.7

func SetTheme(t Theme)

func Success

func Success(message string)

func SuccessWithFields added in v0.0.7

func SuccessWithFields(msg string, fields map[string]interface{})

func Trace added in v0.0.7

func Trace(message string)

func Warn

func Warn(message string)

func WarnWithFields added in v0.0.7

func WarnWithFields(msg string, fields map[string]interface{})

Types

type Config

type Config struct {
	Writer      io.Writer
	Level       Level
	EnableColor bool
	ShowDate    bool
	ShowTime    bool
}

func NewConfig added in v0.0.7

func NewConfig() Config

type Formatter added in v0.0.7

type Formatter struct {
	// contains filtered or unexported fields
}

func NewFormatter added in v0.0.7

func NewFormatter(cfg Config) *Formatter

func (*Formatter) Format added in v0.0.7

func (f *Formatter) Format(level Level, message string) string

type Level

type Level uint8
const (
	TraceLevel Level = iota
	DebugLevel
	InfoLevel
	SuccessLevel
	WarnLevel
	ErrorLevel
	FatalLevel
	PanicLevel
)

func (Level) Color added in v0.0.7

func (l Level) Color() string

func (Level) Enabled added in v0.0.7

func (l Level) Enabled(min Level) bool

func (Level) IsValid added in v0.0.7

func (l Level) IsValid() bool

func (Level) Prefix added in v0.0.7

func (l Level) Prefix() string

func (Level) String

func (l Level) String() string

type Logger

type Logger struct {
	// contains filtered or unexported fields
}

func GetDefault added in v0.0.7

func GetDefault() *Logger

func New

func New(opts ...Option) *Logger

func (*Logger) Debug

func (l *Logger) Debug(message string)

func (*Logger) DebugWithFields added in v0.0.7

func (l *Logger) DebugWithFields(message string, fields map[string]any)

func (*Logger) Error

func (l *Logger) Error(message string)

func (*Logger) ErrorWithFields added in v0.0.7

func (l *Logger) ErrorWithFields(message string, fields map[string]any)

func (*Logger) Fatal

func (l *Logger) Fatal(message string)

func (*Logger) Info

func (l *Logger) Info(message string)

func (*Logger) InfoWithFields added in v0.0.7

func (l *Logger) InfoWithFields(message string, fields map[string]any)

func (*Logger) Panic added in v0.0.7

func (l *Logger) Panic(message string)

func (*Logger) Success

func (l *Logger) Success(message string)

func (*Logger) SuccessWithFields added in v0.0.7

func (l *Logger) SuccessWithFields(message string, fields map[string]any)

func (*Logger) Trace added in v0.0.7

func (l *Logger) Trace(message string)

func (*Logger) Warn

func (l *Logger) Warn(message string)

func (*Logger) WarnWithFields added in v0.0.7

func (l *Logger) WarnWithFields(message string, fields map[string]any)

type Option added in v0.0.7

type Option func(*Config)

func WithColor added in v0.0.7

func WithColor(enable bool) Option

func WithDateTime added in v0.0.7

func WithDateTime(showDate, showTime bool) Option

func WithFileOutput added in v0.0.7

func WithFileOutput(filePath string) Option

func WithLevel added in v0.0.7

func WithLevel(level Level) Option

func WithWriter added in v0.0.7

func WithWriter(w io.Writer) Option

type Theme added in v0.0.7

type Theme struct {
	Trace   string // Color para el nivel TRACE
	Debug   string // Color para el nivel DEBUG
	Info    string // Color para el nivel INFO
	Success string // Color para el nivel SUCCESS
	Warn    string // Color para el nivel WARN
	Error   string // Color para el nivel ERROR
	Fatal   string // Color para el nivel FATAL
	Panic   string // Color para el nivel PANIC
	Reset   string // Código para restablecer el color al final de cada mensaje
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL