starlog/benchmark_test.go

51 lines
1.0 KiB
Go
Raw Normal View History

2026-03-19 16:37:57 +08:00
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")
}
}