栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

net / http设置自定义记录器

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

net / http设置自定义记录器

这很容易

log.Logger
做到,因为该类型可以保证每个日志消息都可以通过
io.Writer
一次
Writer.Write()
调用传递到目标:

每个日志记录操作都会调用Writer的Write方法。一个Logger可以同时从多个goroutine中使用;它保证序列化对Writer的访问。

因此,基本上,您只需要创建一个实现的类型

io.Writer
,并且该类型的
Write()
方法只需调用记录器即可。

这是执行此操作的简单实现:

type fwdToZapWriter struct {    logger *zap.SugaredLogger}func (fw *fwdToZapWriter) Write(p []byte) (n int, err error) {    fw.logger.Errorw(string(p))    return len(p), nil}

就这样。您可以

http.Server
像这样“安装”该编写器:

server := &http.Server{    Addr:     addr,    Handler:  handler,    ErrorLog: logger.New(&fwdToZapWriter{logger}, "", 0),}

logger
上面的示例来自您的示例:
logger, err := cfg.Build()

如果你愿意,你可以很容易地转发给你的

AppLogger
,而不是
logger



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/469018.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号