目标功能:
1.将error以下级别添加到info.log文件中
2.将error及以上添加到error.log文件中
3.将日志数据写入到kafka中(kafka客户端使用sarama)
下载:
go get -u go.uber.org/zap
go get gopkg.in/Shopify/sarama.v1
var(
producerTopic = "klog"
)
func main() {
logger,err := getLoggerWithKafka("D:/log/kinfo.log","D:/log/kerror.log")
if err != nil {
log.Fatal(err)
}
for i := 0 ; i < 10 ;i++ {
logger.Debug("i am debug",zap.String("key","debug"))
logger.Error("i am error",zap.String("key","error"))
logger.Info("i am info",zap.String("key","info"))
time.Sleep(time.Second)
}
}
func getLoggerWithKafka(infoPath,errorPath string) (*zap.Logger,error) {
kp,err := newKafkaProducer(producerTopic,"localhost:9092")
if err != nil {
log.Fatal(err)
}
kws := zapcore.AddSync(kp)
highPriority := zap.LevelEnablerFunc(func(lev zapcore.Level) bool{
return lev >= zap.ErrorLevel
})
lowPriority := zap.LevelEnablerFunc

最低0.47元/天 解锁文章
846





