首页
学习
活动
专区
工具
TVP
发布

码匠的流水账

专栏作者
2402
文章
1906743
阅读量
65
订阅数
聊聊dubbo-go-proxy的loggerFilter
dubbo-go-proxy/pkg/filter/logger/logger.go
code4it
2021-02-09
2480
聊聊gorm的logger
gorm的logger提供了Interface接口,可以自己实现并全局设置或者在session级别设置;gorm默认的logger实现了logger.Interface接口定义的LogMode、Info、Warn、Error、Trace方法。
code4it
2021-01-25
1.5K0
聊聊zerolog的Level
Level为int8类型,其中trace最小为-1,之后是debug、info、warn、error、fatal、panic、NoLevel及Disabled;log.go提供了Trace、Debug、Info、Warn、Error、Fatal、Panic方法来创建*zerolog.Event;WithLevel可以动态传入Level,然后返回指定level的event。
code4it
2021-01-12
3920
聊聊klog的klogger
klogger定义了level、prefix、values属性,New方法创建的klogger其level为0;它实现了logr.Logger接口,其Info先判断Enabled,之后调用klog.InfoDepth;其Error方法调用的是klog.ErrorDepth;其V方法先进行clone在对level进行赋值,返回新的logr.Logger;WithValues方法先进行clone,然后设置values,返回新的logr.Logger;WithName方法也是先进行clone,在设置prefix,返回新的logr.Logger
code4it
2021-01-12
1K0
聊聊klog的Flush
klog的init方法异步协程执行logging.flushDaemon(),它内部执行的是l.lockAndFlushAll();Flush方法是执行l.lockAndFlushAll();l.lockAndFlushAll()方法使用lock执行flushAll;flushAll方法从fatalLog开始递减到infoLog级别挨个执行l.file[s]的Flush及Sync方法;对于redirectBuffer,其Flush及Sync方法为空操作;对于syncBuffer,其Sync方法执行的是*os.File.Sync;其Flush方法执行的是*bufio.Writer.Flush,*bufio.Writer.Flush方法执行的是底层io.Writer的Write方法,即syncBuffer的file的Write方法。
code4it
2021-01-12
1.5K0
聊聊klog的info方法
klog提供了Info、InfoDepth、Infoln、Infof、InfoS方法;Info使用logging.print打印info级别的日志,参数的处理跟fmt.Print类似,若没有换行则会追加换行;InfoDepth可以指定要打印的call frame,Info使用的depth为0;Infoln的参数处理与fmt.Println类似,总是会新添加换行;Infof的参数处理与fmt.Printf类似,若没有换行则会追加换行;InfoS用于打印结构化的日志,kv之间用=连接,总是会新添加换行
code4it
2021-01-12
1.3K0
聊聊golang的lumberjack
Logger定义了Filename、MaxSize(单个文件大小最大值,单位M)、MaxAge(单位天)、MaxBackups、LocalTime、Compress属性;Write方法先判断要写入的长度是否超过l.max(),之后判断file是否为nil,如果为nil则执行l.openExistingOrNew;之后判断l.size+writeLen是否大于l.max(),如果大于则执行l.rotate(),否则执行l.file.Write(p),然后更新l.size。
code4it
2021-01-12
1.2K0
从log4j2的角度看golang的zap
zap目前貌似没有类似log4j2的async的log,针对layout需要自己定制encoder,针对输出需要自己定制Sink/WriteSyncer,要同时输出到多种不同的地方,可以使用zapcore.NewMultiWriteSyncer来包装成一个新的core。
code4it
2021-01-12
6800
聊聊golang的zap的marshaler
zap的marshaler定义了ObjectMarshaler(MarshalLogObject)及ArrayMarshaler(MarshalLogArray)接口;在logger若想使用zap.Object或者zap.Array方法就要求对应的类型实现对应的接口。
code4it
2020-12-24
4240
聊聊golang的zap的NewTee
zapcore.NewTee方法可以把多个core衔接在一起,对应logger的操作会同时操作这些core。
code4it
2020-12-24
8920
聊聊golang的zap的global.go
global.go提供了ReplaceGlobals方法用于注册全局的单例的logger;提供了NewStdLog方法用于返回标准库的log.Logger,然后使用该logger的输出都会通过zap.Logger来输出;提供了RedirectStdLog方法用于改变全局的标准库的log的输出,将其通过zap.Logger来输出,该方法返回一个func来撤销这种重定向。
code4it
2020-12-24
4310
聊聊golang的zap的zapgrpc
https://github.com/grpc/grpc-go/blob/master/grpclog/logger.go
code4it
2020-12-24
6850
聊聊golang的zap的NewExample
NewExample使用通过core来创建Logger,其中core使用的Encoder为JSONEncoder,WriteSyncer使用的是os.Stdout,LevelEnabler使用的是DebugLevel;NewJSONEncoder创建的是jsonEncoder;其EncodeEntry方法一次打印LevelKey、TimeKey、LoggerName、Caller,最后才是业务的message本身,然后结束json打印,对于有stacktrace还会以非json的形式(普通堆栈形式)打印stacktrace
code4it
2020-12-11
3700
golang的zap的SugaredLogger
序 本文主要研究一下golang的zap的SugaredLogger SugaredLogger zap@v1.16.0/sugar.go type SugaredLogger struct { base *Logger } func (s *SugaredLogger) Named(name string) *SugaredLogger { return &SugaredLogger{base: s.base.Named(name)} } func (s *SugaredLogger)
code4it
2020-12-11
7450
聊聊golang的zap的NewProduction
zap.NewProduction()通过创建NewProductionEncoderConfig再Build出Logger,其中Logger的New方法主要设置了core、errorOutput、addStack属性
code4it
2020-12-11
8880
聊聊debezium的ChangeEventQueue
debezium-v1.1.1.Final/debezium-core/src/main/java/io/debezium/connector/base/ChangeEventQueueMetrics.java
code4it
2020-05-16
4510
聊聊debezium的ChangeEventQueue
debezium-v1.1.1.Final/debezium-core/src/main/java/io/debezium/connector/base/ChangeEventQueueMetrics.java
code4it
2020-05-12
7140
聊聊artemis的CriticalAnalyzerPolicy
activemq-artemis-2.11.0/artemis-commons/src/main/java/org/apache/activemq/artemis/utils/critical/CriticalAnalyzerPolicy.java
code4it
2020-02-24
2590
聊聊artemis的CriticalAnalyzerPolicy
activemq-artemis-2.11.0/artemis-commons/src/main/java/org/apache/activemq/artemis/utils/critical/CriticalAnalyzerPolicy.java
code4it
2020-02-05
2650
聊聊spring cloud的FeignClientFactoryBean
本文主要研究一下spring cloud的FeignClientFactoryBean
code4it
2019-07-19
9660
点击加载更多
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档