proxy ver1

This commit is contained in:
Jay
2020-01-13 18:05:18 +08:00
commit c15c1c0421
7 changed files with 351 additions and 0 deletions
+60
View File
@@ -0,0 +1,60 @@
package logger
import (
"fmt"
"github.com/mgutz/ansi"
)
type Logger interface {
Trace(f string, args ...interface{})
Debug(f string, args ...interface{})
Info(f string, args ...interface{})
Warn(f string, args ...interface{})
}
type NullLogger struct{}
func (n NullLogger) Trace(f string, args ...interface{}) {}
func (n NullLogger) Debug(f string, args ...interface{}) {}
func (n NullLogger) Info(f string, args ...interface{}) {}
func (n NullLogger) Warn(f string, args ...interface{}) {}
type ColorLogger struct {
VeryVerbose bool
Verbose bool
Prefix string
Color bool
}
func (c ColorLogger) Trace(f string, args ...interface{}) {
if !c.VeryVerbose {
return
}
c.output("blue", f, args...)
}
func (c ColorLogger) Debug(f string, args ...interface{}) {
if !c.Verbose {
return
}
c.output("green", f, args...)
}
func (c ColorLogger) Info(f string, args ...interface{}) {
c.output("green", f, args...)
}
func (c ColorLogger) Warn(f string, args ...interface{}) {
c.output("red", f, args...)
}
func (c ColorLogger) output(color, f string, args ...interface{}) {
if c.Color && color != "" {
f = ansi.Color(f, color)
}
fmt.Printf(fmt.Sprintf("%s%s\n", c.Prefix, f), args...)
}