https://github.com/berquerant/logger
A light-weight wrapper of standard log.
https://github.com/berquerant/logger
go
Last synced: about 1 year ago
JSON representation
A light-weight wrapper of standard log.
- Host: GitHub
- URL: https://github.com/berquerant/logger
- Owner: berquerant
- License: mit
- Created: 2022-09-20T12:57:06.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2022-11-07T13:58:12.000Z (over 3 years ago)
- Last Synced: 2025-02-06T16:58:47.724Z (over 1 year ago)
- Topics: go
- Language: Go
- Homepage:
- Size: 22.5 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# logger
A light-weight wrapper of standard `log`.
## Static logger
``` go
logger.G().Info("message")
```
writes like `2022/09/20 10:00:00 I | message` to stderr.
## Logger instance
``` go
l := logger.NewDefault(logger.Lerror)
l.Info("message")
```
## Customized logger
``` go
package main
import (
"fmt"
"log"
"os"
"github.com/berquerant/logger"
)
func main() {
log.SetFlags(0)
log.SetOutput(os.Stdout)
l := &logger.Logger{
Proxy: logger.NewProxy(
logger.MustNewMapperFunc(func(ev logger.Event) logger.Event {
switch ev.Level() {
case logger.Linfo, logger.Lwarn, logger.Lerror:
// select info, warn, error
return ev
default:
// ignore other levels
fmt.Printf("Ignore: %v", ev)
return nil
}
}).Next(func(ev logger.Event) {
if ev.Level() == logger.Lerror { // consume only error logs
fmt.Printf("Got an error: %v\n", ev)
}
}).Next(logger.StandardLogConsumer),
),
}
l.Info("info msg")
l.Error("error msg")
l.Trace("trace msg")
}
// Output:
// info msg
// Got an error: error msg
// error msg
// Ignore: trace msg
```