47 lines
962 B
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())
|
|
}
|