增加vendor
This commit is contained in:
+112
@@ -0,0 +1,112 @@
|
||||
package xlog
|
||||
|
||||
type ColorType string
|
||||
|
||||
var (
|
||||
Reset = ColorType([]byte{27, 91, 48, 109})
|
||||
// 标准
|
||||
White = ColorType([]byte{27, 91, 51, 48, 109}) // 白色
|
||||
Red = ColorType([]byte{27, 91, 51, 49, 109}) // 红色
|
||||
Green = ColorType([]byte{27, 91, 51, 50, 109}) // 绿色
|
||||
Yellow = ColorType([]byte{27, 91, 51, 51, 109}) // 黄色
|
||||
Blue = ColorType([]byte{27, 91, 51, 52, 109}) // 蓝色
|
||||
Magenta = ColorType([]byte{27, 91, 51, 53, 109}) // 紫色
|
||||
Cyan = ColorType([]byte{27, 91, 51, 54, 109}) // 青色
|
||||
// 高亮
|
||||
WhiteBright = ColorType([]byte{27, 91, 49, 59, 51, 48, 109})
|
||||
RedBright = ColorType([]byte{27, 91, 49, 59, 51, 49, 109})
|
||||
GreenBright = ColorType([]byte{27, 91, 49, 59, 51, 50, 109})
|
||||
YellowBright = ColorType([]byte{27, 91, 49, 59, 51, 51, 109})
|
||||
BlueBright = ColorType([]byte{27, 91, 49, 59, 51, 52, 109})
|
||||
MagentaBright = ColorType([]byte{27, 91, 49, 59, 51, 53, 109})
|
||||
CyanBright = ColorType([]byte{27, 91, 49, 59, 51, 54, 109})
|
||||
// 斜体
|
||||
WhiteBevel = ColorType([]byte{27, 91, 51, 59, 51, 48, 109})
|
||||
RedBevel = ColorType([]byte{27, 91, 51, 59, 51, 49, 109})
|
||||
GreenBevel = ColorType([]byte{27, 91, 51, 59, 51, 50, 109})
|
||||
YellowBevel = ColorType([]byte{27, 91, 51, 59, 51, 51, 109})
|
||||
BlueBevel = ColorType([]byte{27, 91, 51, 59, 51, 52, 109})
|
||||
MagentaBevel = ColorType([]byte{27, 91, 51, 59, 51, 53, 109})
|
||||
CyanBevel = ColorType([]byte{27, 91, 51, 59, 51, 54, 109})
|
||||
// 下划线
|
||||
WhiteUnderLine = ColorType([]byte{27, 91, 52, 59, 51, 48, 109})
|
||||
RedUnderLine = ColorType([]byte{27, 91, 52, 59, 51, 49, 109})
|
||||
GreenUnderLine = ColorType([]byte{27, 91, 52, 59, 51, 50, 109})
|
||||
YellowUnderLine = ColorType([]byte{27, 91, 52, 59, 51, 51, 109})
|
||||
BlueUnderLine = ColorType([]byte{27, 91, 52, 59, 51, 52, 109})
|
||||
MagentaUnderLine = ColorType([]byte{27, 91, 52, 59, 51, 53, 109})
|
||||
CyanUnderLine = ColorType([]byte{27, 91, 52, 59, 51, 54, 109})
|
||||
// 背景色
|
||||
WhiteBg = ColorType([]byte{27, 91, 55, 59, 51, 48, 109})
|
||||
RedBg = ColorType([]byte{27, 91, 55, 59, 51, 49, 109})
|
||||
GreenBg = ColorType([]byte{27, 91, 55, 59, 51, 50, 109})
|
||||
YellowBg = ColorType([]byte{27, 91, 55, 59, 51, 51, 109})
|
||||
BlueBg = ColorType([]byte{27, 91, 55, 59, 51, 52, 109})
|
||||
MagentaBg = ColorType([]byte{27, 91, 55, 59, 51, 53, 109})
|
||||
CyanBg = ColorType([]byte{27, 91, 55, 59, 51, 54, 109})
|
||||
// 删除线
|
||||
WhiteDelLine = ColorType([]byte{27, 91, 57, 59, 51, 48, 109})
|
||||
RedDelLine = ColorType([]byte{27, 91, 57, 59, 51, 49, 109})
|
||||
GreenDelLine = ColorType([]byte{27, 91, 57, 59, 51, 50, 109})
|
||||
YellowDelLine = ColorType([]byte{27, 91, 57, 59, 51, 51, 109})
|
||||
BlueDelLine = ColorType([]byte{27, 91, 57, 59, 51, 52, 109})
|
||||
MagentaDelLine = ColorType([]byte{27, 91, 57, 59, 51, 53, 109})
|
||||
CyanDelLine = ColorType([]byte{27, 91, 57, 59, 51, 54, 109})
|
||||
)
|
||||
|
||||
var cl *ColorLogger
|
||||
|
||||
type ColorLogger struct {
|
||||
Color ColorType
|
||||
i *InfoLogger
|
||||
d *DebugLogger
|
||||
w *WarnLogger
|
||||
e *ErrorLogger
|
||||
}
|
||||
|
||||
func Color(color ColorType) *ColorLogger {
|
||||
if cl == nil {
|
||||
cl = &ColorLogger{
|
||||
Color: color,
|
||||
i: &InfoLogger{},
|
||||
d: &DebugLogger{},
|
||||
w: &WarnLogger{},
|
||||
e: &ErrorLogger{},
|
||||
}
|
||||
return cl
|
||||
}
|
||||
cl.Color = color
|
||||
return cl
|
||||
}
|
||||
|
||||
func (l *ColorLogger) Info(args ...interface{}) {
|
||||
l.i.LogOut(&l.Color, nil, args...)
|
||||
}
|
||||
|
||||
func (l *ColorLogger) Infof(format string, args ...interface{}) {
|
||||
l.i.LogOut(&l.Color, &format, args...)
|
||||
}
|
||||
|
||||
func (l *ColorLogger) Debug(args ...interface{}) {
|
||||
l.d.LogOut(&l.Color, nil, args...)
|
||||
}
|
||||
|
||||
func (l *ColorLogger) Debugf(format string, args ...interface{}) {
|
||||
l.d.LogOut(&l.Color, &format, args...)
|
||||
}
|
||||
|
||||
func (l *ColorLogger) Warn(args ...interface{}) {
|
||||
l.w.LogOut(&l.Color, nil, args...)
|
||||
}
|
||||
|
||||
func (l *ColorLogger) Warnf(format string, args ...interface{}) {
|
||||
l.w.LogOut(&l.Color, &format, args...)
|
||||
}
|
||||
|
||||
func (l *ColorLogger) Error(args ...interface{}) {
|
||||
l.e.LogOut(&l.Color, nil, args...)
|
||||
}
|
||||
|
||||
func (l *ColorLogger) Errorf(format string, args ...interface{}) {
|
||||
l.e.LogOut(&l.Color, &format, args...)
|
||||
}
|
||||
+41
@@ -0,0 +1,41 @@
|
||||
package xlog
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"log"
|
||||
"os"
|
||||
"sync"
|
||||
)
|
||||
|
||||
type DebugLogger struct {
|
||||
logger *log.Logger
|
||||
once sync.Once
|
||||
}
|
||||
|
||||
func (i *DebugLogger) LogOut(col *ColorType, format *string, v ...interface{}) {
|
||||
i.once.Do(func() {
|
||||
i.init()
|
||||
})
|
||||
if Level >= DebugLevel {
|
||||
if col != nil {
|
||||
if format != nil {
|
||||
i.logger.Output(3, string(*col)+fmt.Sprintf(*format, v...)+string(Reset))
|
||||
return
|
||||
}
|
||||
i.logger.Output(3, string(*col)+fmt.Sprintln(v...)+string(Reset))
|
||||
return
|
||||
}
|
||||
if format != nil {
|
||||
i.logger.Output(3, fmt.Sprintf(*format, v...))
|
||||
return
|
||||
}
|
||||
i.logger.Output(3, fmt.Sprintln(v...))
|
||||
}
|
||||
}
|
||||
|
||||
func (i *DebugLogger) init() {
|
||||
if Level == 0 {
|
||||
Level = DebugLevel
|
||||
}
|
||||
i.logger = log.New(os.Stdout, "[DEBUG] >> ", log.Lmsgprefix|log.Lshortfile|log.Ldate|log.Lmicroseconds)
|
||||
}
|
||||
+41
@@ -0,0 +1,41 @@
|
||||
package xlog
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"log"
|
||||
"os"
|
||||
"sync"
|
||||
)
|
||||
|
||||
type ErrorLogger struct {
|
||||
logger *log.Logger
|
||||
once sync.Once
|
||||
}
|
||||
|
||||
func (e *ErrorLogger) LogOut(col *ColorType, format *string, v ...interface{}) {
|
||||
e.once.Do(func() {
|
||||
e.init()
|
||||
})
|
||||
if Level >= ErrorLevel {
|
||||
if col != nil {
|
||||
if format != nil {
|
||||
e.logger.Output(3, string(*col)+fmt.Sprintf(*format, v...)+string(Reset))
|
||||
return
|
||||
}
|
||||
e.logger.Output(3, string(*col)+fmt.Sprintln(v...)+string(Reset))
|
||||
return
|
||||
}
|
||||
if format != nil {
|
||||
e.logger.Output(3, fmt.Sprintf(*format, v...))
|
||||
return
|
||||
}
|
||||
e.logger.Output(3, fmt.Sprintln(v...))
|
||||
}
|
||||
}
|
||||
|
||||
func (e *ErrorLogger) init() {
|
||||
if Level == 0 {
|
||||
Level = DebugLevel
|
||||
}
|
||||
e.logger = log.New(os.Stdout, "[ERROR] >> ", log.Lmsgprefix|log.Lshortfile|log.Ldate|log.Lmicroseconds)
|
||||
}
|
||||
+41
@@ -0,0 +1,41 @@
|
||||
package xlog
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"log"
|
||||
"os"
|
||||
"sync"
|
||||
)
|
||||
|
||||
type InfoLogger struct {
|
||||
logger *log.Logger
|
||||
once sync.Once
|
||||
}
|
||||
|
||||
func (i *InfoLogger) LogOut(col *ColorType, format *string, v ...interface{}) {
|
||||
i.once.Do(func() {
|
||||
i.init()
|
||||
})
|
||||
if Level >= InfoLevel {
|
||||
if col != nil {
|
||||
if format != nil {
|
||||
i.logger.Output(3, string(*col)+fmt.Sprintf(*format, v...)+string(Reset))
|
||||
return
|
||||
}
|
||||
i.logger.Output(3, string(*col)+fmt.Sprintln(v...)+string(Reset))
|
||||
return
|
||||
}
|
||||
if format != nil {
|
||||
i.logger.Output(3, fmt.Sprintf(*format, v...))
|
||||
return
|
||||
}
|
||||
i.logger.Output(3, fmt.Sprintln(v...))
|
||||
}
|
||||
}
|
||||
|
||||
func (i *InfoLogger) init() {
|
||||
if Level == 0 {
|
||||
Level = DebugLevel
|
||||
}
|
||||
i.logger = log.New(os.Stdout, "[INFO] >> ", log.Lmsgprefix|log.Lshortfile|log.Ldate|log.Lmicroseconds)
|
||||
}
|
||||
+55
@@ -0,0 +1,55 @@
|
||||
package xlog
|
||||
|
||||
const (
|
||||
ErrorLevel LogLevel = iota + 1
|
||||
WarnLevel
|
||||
InfoLevel
|
||||
DebugLevel
|
||||
)
|
||||
|
||||
type LogLevel int
|
||||
|
||||
var (
|
||||
debugLog XLogger = &DebugLogger{}
|
||||
infoLog XLogger = &InfoLogger{}
|
||||
warnLog XLogger = &WarnLogger{}
|
||||
errLog XLogger = &ErrorLogger{}
|
||||
|
||||
Level LogLevel
|
||||
)
|
||||
|
||||
type XLogger interface {
|
||||
LogOut(col *ColorType, format *string, args ...interface{})
|
||||
}
|
||||
|
||||
func Info(args ...interface{}) {
|
||||
infoLog.LogOut(nil, nil, args...)
|
||||
}
|
||||
|
||||
func Infof(format string, args ...interface{}) {
|
||||
infoLog.LogOut(nil, &format, args...)
|
||||
}
|
||||
|
||||
func Debug(args ...interface{}) {
|
||||
debugLog.LogOut(nil, nil, args...)
|
||||
}
|
||||
|
||||
func Debugf(format string, args ...interface{}) {
|
||||
debugLog.LogOut(nil, &format, args...)
|
||||
}
|
||||
|
||||
func Warn(args ...interface{}) {
|
||||
warnLog.LogOut(nil, nil, args...)
|
||||
}
|
||||
|
||||
func Warnf(format string, args ...interface{}) {
|
||||
warnLog.LogOut(nil, &format, args...)
|
||||
}
|
||||
|
||||
func Error(args ...interface{}) {
|
||||
errLog.LogOut(nil, nil, args...)
|
||||
}
|
||||
|
||||
func Errorf(format string, args ...interface{}) {
|
||||
errLog.LogOut(nil, &format, args...)
|
||||
}
|
||||
+41
@@ -0,0 +1,41 @@
|
||||
package xlog
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"log"
|
||||
"os"
|
||||
"sync"
|
||||
)
|
||||
|
||||
type WarnLogger struct {
|
||||
logger *log.Logger
|
||||
once sync.Once
|
||||
}
|
||||
|
||||
func (i *WarnLogger) LogOut(col *ColorType, format *string, v ...interface{}) {
|
||||
i.once.Do(func() {
|
||||
i.init()
|
||||
})
|
||||
if Level >= WarnLevel {
|
||||
if col != nil {
|
||||
if format != nil {
|
||||
i.logger.Output(3, string(*col)+fmt.Sprintf(*format, v...)+string(Reset))
|
||||
return
|
||||
}
|
||||
i.logger.Output(3, string(*col)+fmt.Sprintln(v...)+string(Reset))
|
||||
return
|
||||
}
|
||||
if format != nil {
|
||||
i.logger.Output(3, fmt.Sprintf(*format, v...))
|
||||
return
|
||||
}
|
||||
i.logger.Output(3, fmt.Sprintln(v...))
|
||||
}
|
||||
}
|
||||
|
||||
func (i *WarnLogger) init() {
|
||||
if Level == 0 {
|
||||
Level = DebugLevel
|
||||
}
|
||||
i.logger = log.New(os.Stdout, "[WARN] >> ", log.Lmsgprefix|log.Lshortfile|log.Ldate|log.Lmicroseconds)
|
||||
}
|
||||
Reference in New Issue
Block a user