log API

log

package

API reference for the log package.

T
type

LogLevel

LogLevel represents the severity of a log message.

pkg/log/log.go:9-9
type LogLevel int
I
interface

Logger

Logger defines the interface for logging messages with different severity levels.

pkg/log/log.go:19-24
type Logger interface

Methods

Info
Method

Parameters

format string
a ...any
func Info(...)
Success
Method

Parameters

format string
a ...any
func Success(...)
Warning
Method

Parameters

format string
a ...any
func Warning(...)
Error
Method

Parameters

format string
a ...any
func Error(...)
S
struct
Implements: Logger

defaultLogger

pkg/log/log.go:26-26
type defaultLogger struct

Methods

Info
Method

Info logs an informational message.

Parameters

format string
a ...any
func (*defaultLogger) Info(format string, a ...any)
{
	logMessage(LogLevelInfo, "", format, a...)
}
Example
logger.Info("System status: %s", "OK")
Success
Method

Success logs a success message.

Parameters

format string
a ...any
func (*defaultLogger) Success(format string, a ...any)
{
	logMessage(LogLevelSuccess, "", format, a...)
}
Example
logger.Success("Operation completed successfully")
Warning
Method

Warning logs a warning message.

Parameters

format string
a ...any
func (*defaultLogger) Warning(format string, a ...any)
{
	logMessage(LogLevelWarning, "", format, a...)
}
Example
logger.Warning("Disk space is running low")
Error
Method

Error logs an error message.

Parameters

format string
a ...any
func (*defaultLogger) Error(format string, a ...any)
{
	logMessage(LogLevelError, "", format, a...)
}
Example
logger.Error("Failed to connect to database: %v", err)
F
function

New

New creates a new instance of the default Logger.

Returns

pkg/log/log.go:34-36
func New() Logger

{
	return &defaultLogger{}
}

Example

logger := log.New()
logger.Info("Starting application...")
F
function

logMessage

logMessage prints a formatted message to standard output based on log level and debug mode.

Parameters

level
component
string
format
string
a
...any
pkg/log/log.go:75-85
func logMessage(level LogLevel, component string, format string, a ...any)

{
	color := getLogLevelColor(level)
	coloredLevel := colorize(getLogLevelSymbol(level), color)

	coloredComponent := ""
	if os.Getenv("DEBUG") == "1" && component != "" {
		coloredComponent = colorize(component, "blue") + " "
	}

	fmt.Printf("%s %s%s\n", coloredLevel, coloredComponent, fmt.Sprintf(format, a...))
}
F
function

getLogLevelColor

getLogLevelColor returns the ANSI color code name associated with a log level.

Parameters

level

Returns

string
pkg/log/log.go:88-101
func getLogLevelColor(level LogLevel) string

{
	switch level {
	case LogLevelInfo:
		return "blue"
	case LogLevelWarning:
		return "yellow"
	case LogLevelError:
		return "red"
	case LogLevelSuccess:
		return "green"
	default:
		return "reset"
	}
}
F
function

getLogLevelSymbol

getLogLevelSymbol returns the unicode symbol associated with a log level.

Parameters

level

Returns

string
pkg/log/log.go:104-117
func getLogLevelSymbol(level LogLevel) string

{
	switch level {
	case LogLevelInfo:
		return "ℹ"
	case LogLevelWarning:
		return "⚠️"
	case LogLevelError:
		return "ø"
	case LogLevelSuccess:
		return "✓"
	default:
		return ""
	}
}
F
function

colorize

colorize applies the specified ANSI color to the text.

Parameters

text
string
color
string

Returns

string
pkg/log/log.go:120-129
func colorize(text string, color string) string

{
	colors := map[string]string{
		"red":    "\033[31m",
		"green":  "\033[32m",
		"yellow": "\033[33m",
		"blue":   "\033[34m",
		"reset":  "\033[0m",
	}
	return colors[color] + text + colors["reset"]
}