# README
nanoZap
nanoZap is a nanosecond scale logging system for Go based on uber-go/zap.
zap provides stable & robust foundation, it is easy to drop modules that we don't need, and the remaining parts are still working well.
Modifications
Improvement
Avg. latency is 30ns/op. (6x faster). No stall anymore, someone has implemented a buffer for log, but it's not enough, because when disk flushes the buffer it may cause disk stall and your program will be blocked for a long time. In this version, nothing is blocking, and I'll drop messages if there are too many (e.g., if there are 1millions/seconds, nanoZap may drop some).
- remove console encoder
- wait-free log write
- async disk flush
- add an internal log rolling package
Shrink
I don't need these features in my project, so I removed them...
- float64 replace by int64 in epochTimeEncoder
- remove stack / no caller
- remove std error output in Logger
- remove Any Type
- remove fields support, only message
- no options (no logger clone too)
- remove DPanicLevel
- no logger name
- no sample
- ...