76 lines
1.9 KiB
Go
76 lines
1.9 KiB
Go
// Package log defines the core logging functionality for Abra.
|
|
package log
|
|
|
|
import (
|
|
"os"
|
|
"strings"
|
|
|
|
"github.com/charmbracelet/lipgloss"
|
|
charmLog "github.com/charmbracelet/log"
|
|
)
|
|
|
|
// Logger is the central logging interface.
|
|
var Logger = charmLog.NewWithOptions(os.Stdout, charmLog.Options{
|
|
ReportCaller: false,
|
|
ReportTimestamp: false,
|
|
})
|
|
|
|
var Fatal = Logger.Fatal
|
|
var Fatalf = Logger.Fatalf
|
|
|
|
var Debug = Logger.Debug
|
|
var Debugf = Logger.Debugf
|
|
|
|
var Info = Logger.Info
|
|
var Infof = Logger.Infof
|
|
|
|
var Warn = Logger.Warn
|
|
var Warnf = Logger.Warnf
|
|
|
|
var Error = Logger.Error
|
|
var Errorf = Logger.Errorf
|
|
|
|
var SetLevel = Logger.SetLevel
|
|
var DebugLevel = charmLog.DebugLevel
|
|
var SetOutput = charmLog.SetOutput
|
|
var SetReportCaller = charmLog.SetReportCaller
|
|
|
|
func Styles() *charmLog.Styles {
|
|
styles := charmLog.DefaultStyles()
|
|
|
|
styles.Levels = map[charmLog.Level]lipgloss.Style{
|
|
charmLog.DebugLevel: lipgloss.NewStyle().
|
|
SetString(strings.ToUpper(DebugLevel.String())).
|
|
Bold(true).
|
|
Padding(0, 1, 0, 1).
|
|
Background(lipgloss.Color("63")).
|
|
Foreground(lipgloss.Color("15")),
|
|
charmLog.InfoLevel: lipgloss.NewStyle().
|
|
SetString(strings.ToUpper(charmLog.InfoLevel.String())).
|
|
Bold(true).
|
|
Padding(0, 1, 0, 1).
|
|
Background(lipgloss.Color("86")).
|
|
Foreground(lipgloss.Color("16")),
|
|
charmLog.WarnLevel: lipgloss.NewStyle().
|
|
SetString(strings.ToUpper(charmLog.WarnLevel.String())).
|
|
Bold(true).
|
|
Padding(0, 1, 0, 1).
|
|
Background(lipgloss.Color("192")).
|
|
Foreground(lipgloss.Color("16")),
|
|
charmLog.ErrorLevel: lipgloss.NewStyle().
|
|
SetString(strings.ToUpper(charmLog.ErrorLevel.String())).
|
|
Bold(true).
|
|
Padding(0, 1, 0, 1).
|
|
Background(lipgloss.Color("204")).
|
|
Foreground(lipgloss.Color("15")),
|
|
charmLog.FatalLevel: lipgloss.NewStyle().
|
|
SetString(strings.ToUpper(charmLog.FatalLevel.String())).
|
|
Bold(true).
|
|
Padding(0, 1, 0, 1).
|
|
Background(lipgloss.Color("134")).
|
|
Foreground(lipgloss.Color("15")),
|
|
}
|
|
|
|
return styles
|
|
}
|