51 lines
1.0 KiB
Go
51 lines
1.0 KiB
Go
|
|
package starlog
|
||
|
|
|
||
|
|
import (
|
||
|
|
"io"
|
||
|
|
"testing"
|
||
|
|
)
|
||
|
|
|
||
|
|
func newBenchmarkLogger() *StarLogger {
|
||
|
|
logger := NewStarlog(io.Discard)
|
||
|
|
logger.SetShowStd(false)
|
||
|
|
logger.SetShowColor(false)
|
||
|
|
logger.SetShowOriginFile(false)
|
||
|
|
logger.SetShowFuncName(false)
|
||
|
|
logger.SetShowFlag(false)
|
||
|
|
return logger
|
||
|
|
}
|
||
|
|
|
||
|
|
func BenchmarkInfoTextFormatter(b *testing.B) {
|
||
|
|
logger := newBenchmarkLogger()
|
||
|
|
logger.SetFormatter(NewTextFormatter())
|
||
|
|
b.ReportAllocs()
|
||
|
|
b.ResetTimer()
|
||
|
|
for i := 0; i < b.N; i++ {
|
||
|
|
logger.Info("bench text formatter")
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
func BenchmarkInfoJSONFormatter(b *testing.B) {
|
||
|
|
logger := newBenchmarkLogger()
|
||
|
|
logger.SetFormatter(NewJSONFormatter())
|
||
|
|
b.ReportAllocs()
|
||
|
|
b.ResetTimer()
|
||
|
|
for i := 0; i < b.N; i++ {
|
||
|
|
logger.WithField("idx", i).Info("bench json formatter")
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
func BenchmarkWithFieldsInfo(b *testing.B) {
|
||
|
|
logger := newBenchmarkLogger()
|
||
|
|
fields := Fields{
|
||
|
|
"user_id": 42,
|
||
|
|
"module": "auth",
|
||
|
|
"ok": true,
|
||
|
|
}
|
||
|
|
b.ReportAllocs()
|
||
|
|
b.ResetTimer()
|
||
|
|
for i := 0; i < b.N; i++ {
|
||
|
|
logger.WithFields(fields).Info("bench structured")
|
||
|
|
}
|
||
|
|
}
|