Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/chalvern/sugar
simpler golang logger which package sugared zap
https://github.com/chalvern/sugar
go golang logger sugar zap
Last synced: 2 months ago
JSON representation
simpler golang logger which package sugared zap
- Host: GitHub
- URL: https://github.com/chalvern/sugar
- Owner: chalvern
- License: mit
- Created: 2019-06-09T13:10:13.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2022-08-30T11:12:36.000Z (about 2 years ago)
- Last Synced: 2024-06-27T08:34:45.850Z (3 months ago)
- Topics: go, golang, logger, sugar, zap
- Language: Go
- Homepage:
- Size: 14.6 KB
- Stars: 37
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# sugar
《[中文文档](./README_zh.md)》
more simple logger which package sugared [zap](https://github.com/uber-go/zap).
Please learn [zap](https://github.com/uber-go/zap) first if you want advanced using.## something you should know
* sugar use `zap.NewDevelopmentConfig()` as default config, which use console as encoding style,
* `InitDevelopmentSugar()` set encoding being json instead of console, which is practically better for docker's json logger plugin.## Leveled method
all methods of zap:
* Debug/Debugf
* Info/Infof
* Warn/Warnf
* Error/Errorf
* Fatal/Fatalf
* Panic/Panicf## logs looking
I recommend zap mostly because of its beautiful logs looking.### looking #1
Development mode with console style printing.```bash
2019-06-10T09:13:03.672+0800 DEBUG default/main.go:7 default development sugar of chalvern {"unit": "main"}
2019-06-10T09:13:03.672+0800 INFO default/main.go:20 log of myCustomLogger info {"unit": "my_custom_logger"}
2019-06-10T09:13:03.672+0800 WARN default/main.go:21 log of myCustomLogger warn {"unit": "my_custom_logger"}
github.com/chalvern/sugar.(*Logger).Warn
/Users/Chalvern/developer/golang/src/github.com/chalvern/sugar/logger.go:51
main.myCustomLogger
/Users/Chalvern/developer/golang/src/github.com/chalvern/sugar/examples/default/main.go:21
main.main
/Users/Chalvern/developer/golang/src/github.com/chalvern/sugar/examples/default/main.go:8
runtime.main
/usr/local/go/src/runtime/proc.go:200
2019-06-10T09:13:03.672+0800 INFO default/main.go:26 log of myCustomLogger2 info {"unit": "my_custom_logger_2"}
2019-06-10T09:13:03.672+0800 WARN default/main.go:27 log of myCustomLogger2 warn {"unit": "my_custom_logger_2"}
github.com/chalvern/sugar.(*Logger).Warn
/Users/Chalvern/developer/golang/src/github.com/chalvern/sugar/logger.go:51
main.myCustomLogger2
/Users/Chalvern/developer/golang/src/github.com/chalvern/sugar/examples/default/main.go:27
main.main
/Users/Chalvern/developer/golang/src/github.com/chalvern/sugar/examples/default/main.go:9
runtime.main
/usr/local/go/src/runtime/proc.go:200
```### looking #2
Production mode with json style printing (Development mode can also has json stype printing, more see [something you should know](#something-you-should-know) )
```json
{"level":"info","ts":1560129183.672966,"caller":"default/main.go:13","msg":"default production sugar of chalvern","unit":"main"}
{"level":"info","ts":1560129183.673015,"caller":"default/main.go:20","msg":"log of myCustomLogger info","unit":"my_custom_logger"}
{"level":"warn","ts":1560129183.6730392,"caller":"default/main.go:21","msg":"log of myCustomLogger warn","unit":"my_custom_logger"}
{"level":"info","ts":1560129183.673059,"caller":"default/main.go:26","msg":"log of myCustomLogger2 info","unit":"my_custom_logger_2"}
{"level":"warn","ts":1560129183.673182,"caller":"default/main.go:27","msg":"log of myCustomLogger2 warn","unit":"my_custom_logger_2"}
```## example
you can find example in [examples](./examples).
### default sugar
```go
// cat ./examples/default/main.go
package mainimport "github.com/chalvern/sugar"
func main() {
sugar.Debug("default development sugar of chalvern")
myCustomLogger()
myCustomLogger2()sugar.InitProductionSugar()
sugar.Debug("should not be printed")
sugar.Info("default production sugar of chalvern")
myCustomLogger()
myCustomLogger2()
}func myCustomLogger() {
myLogger := sugar.NewLoggerOf("my_custom_logger")
myLogger.Info("log of myCustomLogger info")
myLogger.Warn("log of myCustomLogger warn")
}func myCustomLogger2() {
myLogger := sugar.NewLoggerOf("my_custom_logger_2")
myLogger.Info("log of myCustomLogger2 info")
myLogger.Warn("log of myCustomLogger2 warn")
}
```### custom sugar
```go
package mainimport (
"github.com/chalvern/sugar"
"go.uber.org/zap"
)func main() {
config := zap.NewProductionConfig()
config.OutputPaths = []string{"./production.log"}
config.ErrorOutputPaths = []string{"./production_err.log"}
sugar.SetSugar(&config)sugar.Info("main info")
myCustomLogger()
}func myCustomLogger() {
myLogger := sugar.NewLoggerOf("my_custom_logger")
myLogger.Info("log of myCustomLogger info")
myLogger.Warn("log of myCustomLogger warn")
}```