mirror of
https://github.com/kataras/iris.git
synced 2025-01-23 18:51:03 +01:00
102 lines
2.7 KiB
Go
102 lines
2.7 KiB
Go
package config
|
|
|
|
import (
|
|
"github.com/fatih/color"
|
|
"github.com/imdario/mergo"
|
|
)
|
|
|
|
import (
|
|
"os"
|
|
)
|
|
|
|
// DefaultLoggerPrefix is the prefix (expect the [IRIS]), is empty for now
|
|
const DefaultLoggerPrefix = ""
|
|
|
|
var (
|
|
// TimeFormat default time format for any kind of datetime parsing
|
|
TimeFormat = "Mon, 02 Jan 2006 15:04:05 GMT"
|
|
)
|
|
|
|
type (
|
|
// Logger contains the full configuration options fields for the Logger
|
|
Logger struct {
|
|
// Out the (file) writer which the messages/logs will printed to
|
|
// Default is os.Stdout
|
|
Out *os.File
|
|
// Prefix the prefix for each message
|
|
// Default is ""
|
|
Prefix string
|
|
// Disabled default is false
|
|
Disabled bool
|
|
|
|
// foreground colors single SGR Code
|
|
|
|
// ColorFgDefault the foreground color for the normal message bodies
|
|
ColorFgDefault int
|
|
// ColorFgInfo the foreground color for info messages
|
|
ColorFgInfo int
|
|
// ColorFgSuccess the foreground color for success messages
|
|
ColorFgSuccess int
|
|
// ColorFgWarning the foreground color for warning messages
|
|
ColorFgWarning int
|
|
// ColorFgDanger the foreground color for error messages
|
|
ColorFgDanger int
|
|
// OtherFgColor the foreground color for the rest of the message types
|
|
ColorFgOther int
|
|
|
|
// background colors single SGR Code
|
|
|
|
// ColorBgDefault the background color for the normal messages
|
|
ColorBgDefault int
|
|
// ColorBgInfo the background color for info messages
|
|
ColorBgInfo int
|
|
// ColorBgSuccess the background color for success messages
|
|
ColorBgSuccess int
|
|
// ColorBgWarning the background color for warning messages
|
|
ColorBgWarning int
|
|
// ColorBgDanger the background color for error messages
|
|
ColorBgDanger int
|
|
// OtherFgColor the background color for the rest of the message types
|
|
ColorBgOther int
|
|
|
|
// banners are the force printed/written messages, doesn't care about Disabled field
|
|
|
|
// ColorFgBanner the foreground color for the banner
|
|
ColorFgBanner int
|
|
}
|
|
)
|
|
|
|
// DefaultLogger returns the default configs for the Logger
|
|
func DefaultLogger() Logger {
|
|
return Logger{
|
|
Out: os.Stdout,
|
|
Prefix: "",
|
|
Disabled: false,
|
|
// foreground colors
|
|
ColorFgDefault: int(color.FgHiWhite),
|
|
ColorFgInfo: int(color.FgHiCyan),
|
|
ColorFgSuccess: int(color.FgHiGreen),
|
|
ColorFgWarning: int(color.FgHiMagenta),
|
|
ColorFgDanger: int(color.FgHiRed),
|
|
ColorFgOther: int(color.FgHiYellow),
|
|
// background colors
|
|
ColorBgDefault: 0,
|
|
ColorBgInfo: 0,
|
|
ColorBgSuccess: 0,
|
|
ColorBgWarning: 0,
|
|
ColorBgDanger: 0,
|
|
ColorBgOther: 0,
|
|
// banner color
|
|
ColorFgBanner: int(color.FgHiBlue),
|
|
}
|
|
}
|
|
|
|
// MergeSingle merges the default with the given config and returns the result
|
|
func (c Logger) MergeSingle(cfg Logger) (config Logger) {
|
|
|
|
config = cfg
|
|
mergo.Merge(&config, c)
|
|
|
|
return
|
|
}
|