Gone框架介绍31 - 使用`goner/zap`替代logrus默认实现,提升日志输出的效率

gone是可以高效开发Web服务的Golang依赖注入框架
github地址:https://github.com/gone-io/gone
文档地址:https://goner.fun/zh/

goner/zap 使用说明

注册到Gone

	//注册 `goner/zap` 相关的Goners
	_ = goner.ZapLoggerPriest(cemetery)

注意:应该将goner/zap注册的注册放到其他Goners注册之前,如果zap注册了,默认使用的logrus就不会再注册,反之如果logrus注册了,zap就不会再注册。

使用 sugar logger

type MyService struct {
    gone.Flag
    gone.Logger `gone:"*"`
}

func (s *MyService) print() {
    s.Info("hello gone")
}

gone.Logger 接口的实现使用的就是zap sugar,所以直接注入gone.Logger,就可以直接使用zap sugar了。

使用 zap logger

type MyService struct {
    gone.Flag
    gone_zap.Logger `gone:"*"`
}

func (s *MyService) print() {
    ctr.Info("print", zap.String("name", "gone"))
}

通过注入gone_zap.Logger,就可以直接使用zap logger了。

provider模式,给当前模块提供logger

  • sugar logger
type MyService struct {
    gone.Flag
    gone.Logger `gone:"zap,my-service"`
}
func (s *MyService) print() {
      s.Info("hello gone")
}

上面代码将创建一个新的名为 my-service 的 sugar logger。

  • zap logger
type MyService struct {
    gone.Flag
    gone_zap.Logger `gone:"zap,my-service"`
}

func (s *MyService) print() {
    ctr.Info("print", zap.String("name", "gone"))
}

上面代码将创建一个新的名为 my-service 的 zap logger。

配置项

goner/zap支持通过配置,改变默认行为;关于配置的读取和配置文件的格式参考 配置读取

配置项说明类型默认值
log.level日志级别,支持 debug、info、warn、error、panic、fatalstringinfo
log.enable-trace-id是否开启traceId,开启traceId后,日志会增加traceId字段booltrue
log.disable-stacktrace是否禁用堆栈信息,禁用堆栈信息后,日志不会增加堆栈信息boolfalse
log.stacktrace-level输出日志时同时打印堆栈信息的级别,支持 debug、info、warn、error、panic、fatalstringerror
log.report-caller是否打印调用方信息,包括文件名、代码行号和函数名booltrue
log.encoder日志格式,支持 console、jsonstringconsole
log.output日志输出位置,支持 stdout、stderr、file,如果配置了file,则日志会输出到file指定的位置;支持多个路径,使用,分隔stringstdout
log.error-output错误日志输出位置,支持 stdout、stderr、file,如果配置了file,则日志会输出到file指定的位置;支持多个路径,使用,分隔string<空>
log.rotation.output日志轮转输出位置,支持 stdout、stderr、file,如果配置了file,则日志会输出到file指定的位置;配置后开启日志轮转string<空>
log.rotation.error-output错误日志轮转输出位置,支持 stdout、stderr、file,如果配置了file,则日志会输出到file指定的位置;配置后开启错误日志轮转string<空>
log.rotation.max-size日志轮转,文件最大大小,单位MBint100
log.rotation.max-files日志轮转,文件最大数量int10
log.rotation.max-age日志轮转,文件最大保存天数int30
log.rotation.local-time日志文件轮转是否使用本地时间戳booltrue
log.rotation.compress日志轮转文件是否压缩boolfalse
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dapeng-大鹏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值