1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- package prettylog
- import (
- "fmt"
- "log"
- "runtime"
- "strings"
- "time"
- )
- type PrettyLogWritter struct {
- lastTime time.Time
- counter int64
- }
- func New() *PrettyLogWritter {
- return &PrettyLogWritter{time.Now(), 0}
- }
- func (this *PrettyLogWritter) Write(b []byte) (int, error) {
- ptr, _, line, _ := runtime.Caller(3)
- tname := runtime.FuncForPC(ptr).Name()
- li := strings.LastIndex(tname, "/")
- fname := tname[li+1:]
- timeDiff := time.Since(this.lastTime)
- var fduration float64 = float64(timeDiff.Nanoseconds()) / 1000000.0
- msg := fmt.Sprintf("[%d:\033[34m%s\033[0m (\033[33m%s:%d\033[0m) \033[90m+%.2f/ms\033[0m]: %s",
- this.counter,
- time.Now().Format("2006-01-02 15:04:05"),
- fname,
- line,
- fduration,
- string(b),
- )
- this.lastTime = time.Now()
- this.counter++
- return fmt.Print(msg)
- }
- func CreateLogger() *log.Logger {
- return log.New(New(), "", 0)
- }
|