e1.1.0 Refactoring default config and unused functions, global auto-initiated logger instance removed
This commit is contained in:
117
interface.go
117
interface.go
@ -3,8 +3,6 @@ package log
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
"github.com/LixenWraith/config"
|
||||
)
|
||||
|
||||
// Log level constants
|
||||
@ -31,56 +29,71 @@ type logRecord struct {
|
||||
Args []any
|
||||
}
|
||||
|
||||
// LoggerInterface defines the public methods for a logger implementation.
|
||||
type LoggerInterface interface {
|
||||
// Init initializes or reconfigures the logger using the provided config.Config instance
|
||||
Init(cfg *config.Config, basePath string) error
|
||||
// Logger instance methods for logging at different levels
|
||||
|
||||
// InitWithDefaults initializes the logger with built-in defaults and optional overrides
|
||||
InitWithDefaults(overrides ...string) error
|
||||
|
||||
// Shutdown gracefully closes the logger, attempting to flush pending records
|
||||
Shutdown(timeout time.Duration) error
|
||||
|
||||
// Debug logs a message at debug level
|
||||
Debug(args ...any)
|
||||
|
||||
// Info logs a message at info level
|
||||
Info(args ...any)
|
||||
|
||||
// Warn logs a message at warning level
|
||||
Warn(args ...any)
|
||||
|
||||
// Error logs a message at error level
|
||||
Error(args ...any)
|
||||
|
||||
// DebugTrace logs a debug message with function call trace
|
||||
DebugTrace(depth int, args ...any)
|
||||
|
||||
// InfoTrace logs an info message with function call trace
|
||||
InfoTrace(depth int, args ...any)
|
||||
|
||||
// WarnTrace logs a warning message with function call trace
|
||||
WarnTrace(depth int, args ...any)
|
||||
|
||||
// ErrorTrace logs an error message with function call trace
|
||||
ErrorTrace(depth int, args ...any)
|
||||
|
||||
// Log writes a timestamp-only record without level information
|
||||
Log(args ...any)
|
||||
|
||||
// Message writes a plain record without timestamp or level info
|
||||
Message(args ...any)
|
||||
|
||||
// LogTrace writes a timestamp record with call trace but no level info
|
||||
LogTrace(depth int, args ...any)
|
||||
|
||||
// SaveConfig saves the current logger configuration to a file
|
||||
SaveConfig(path string) error
|
||||
|
||||
// LoadConfig loads logger configuration from a file with optional CLI overrides
|
||||
LoadConfig(path string, args []string) error
|
||||
// Debug logs a message at debug level.
|
||||
func (l *Logger) Debug(args ...any) {
|
||||
flags := l.getFlags()
|
||||
traceDepth, _ := l.config.Int64("log.trace_depth")
|
||||
l.log(flags, LevelDebug, traceDepth, args...)
|
||||
}
|
||||
|
||||
// Compile-time check to ensure Logger implements LoggerInterface
|
||||
var _ LoggerInterface = (*Logger)(nil)
|
||||
// Info logs a message at info level.
|
||||
func (l *Logger) Info(args ...any) {
|
||||
flags := l.getFlags()
|
||||
traceDepth, _ := l.config.Int64("log.trace_depth")
|
||||
l.log(flags, LevelInfo, traceDepth, args...)
|
||||
}
|
||||
|
||||
// Warn logs a message at warning level.
|
||||
func (l *Logger) Warn(args ...any) {
|
||||
flags := l.getFlags()
|
||||
traceDepth, _ := l.config.Int64("log.trace_depth")
|
||||
l.log(flags, LevelWarn, traceDepth, args...)
|
||||
}
|
||||
|
||||
// Error logs a message at error level.
|
||||
func (l *Logger) Error(args ...any) {
|
||||
flags := l.getFlags()
|
||||
traceDepth, _ := l.config.Int64("log.trace_depth")
|
||||
l.log(flags, LevelError, traceDepth, args...)
|
||||
}
|
||||
|
||||
// DebugTrace logs a debug message with function call trace.
|
||||
func (l *Logger) DebugTrace(depth int, args ...any) {
|
||||
flags := l.getFlags()
|
||||
l.log(flags, LevelDebug, int64(depth), args...)
|
||||
}
|
||||
|
||||
// InfoTrace logs an info message with function call trace.
|
||||
func (l *Logger) InfoTrace(depth int, args ...any) {
|
||||
flags := l.getFlags()
|
||||
l.log(flags, LevelInfo, int64(depth), args...)
|
||||
}
|
||||
|
||||
// WarnTrace logs a warning message with function call trace.
|
||||
func (l *Logger) WarnTrace(depth int, args ...any) {
|
||||
flags := l.getFlags()
|
||||
l.log(flags, LevelWarn, int64(depth), args...)
|
||||
}
|
||||
|
||||
// ErrorTrace logs an error message with function call trace.
|
||||
func (l *Logger) ErrorTrace(depth int, args ...any) {
|
||||
flags := l.getFlags()
|
||||
l.log(flags, LevelError, int64(depth), args...)
|
||||
}
|
||||
|
||||
// Log writes a timestamp-only record without level information.
|
||||
func (l *Logger) Log(args ...any) {
|
||||
l.log(FlagShowTimestamp, LevelInfo, 0, args...)
|
||||
}
|
||||
|
||||
// Message writes a plain record without timestamp or level info.
|
||||
func (l *Logger) Message(args ...any) {
|
||||
l.log(0, LevelInfo, 0, args...)
|
||||
}
|
||||
|
||||
// LogTrace writes a timestamp record with call trace but no level info.
|
||||
func (l *Logger) LogTrace(depth int, args ...any) {
|
||||
l.log(FlagShowTimestamp, LevelInfo, int64(depth), args...)
|
||||
}
|
||||
Reference in New Issue
Block a user