distribution/vendor/github.com/anacrolix/log/time.go

47 lines
962 B
Go

package log
import (
"fmt"
"os"
"time"
)
var DefaultTimeFormatter = func() string {
return time.Now().Format(timeFmt)
}
// Preferred and probably faster than DefaultTimeFormatter.
var DefaultTimeAppendFormatter = func(b []byte) []byte {
return time.Now().AppendFormat(b, timeFmt)
}
func GetDefaultTimeAppendFormatter() func([]byte) []byte {
if DefaultTimeAppendFormatter != nil {
return DefaultTimeAppendFormatter
}
// Hopefully this doesn't allocate.
return func(b []byte) []byte {
return append(b, DefaultTimeFormatter()...)
}
}
var timeFmt string
func init() {
var ok bool
timeFmt, ok = os.LookupEnv(EnvTimeFormat)
if !ok {
timeFmt = "2006-01-02 15:04:05 -0700"
}
}
var started = time.Now()
var TimeFormatSecondsSinceInit = func() string {
return fmt.Sprintf("%.3fs", time.Since(started).Seconds())
}
var TimeAppendFormatSecondsSinceInit = func(b []byte) []byte {
return fmt.Appendf(b, "%.3fs", time.Since(started).Seconds())
}