81 lines
2.0 KiB
Markdown
81 lines
2.0 KiB
Markdown
|
[](https://github.com/t-tomalak/logrus-easy-formatter/actions)
|
||
|
[](https://goreportcard.com/report/github.com/t-tomalak/logrus-easy-formatter)
|
||
|
## Logrus Easy Formatter
|
||
|
Provided formatter allow to easily format [Logrus](https://github.com/sirupsen/logrus) log output
|
||
|
Some inspiration taken from [logrus-prefixed-formatter](https://github.com/x-cray/logrus-prefixed-formatter)
|
||
|
|
||
|
## Default output
|
||
|
When format options are not provided `Formatter` will output
|
||
|
```bash
|
||
|
[INFO]: 2006-01-02T15:04:05Z07:00 - Log message
|
||
|
```
|
||
|
|
||
|
## Sample Usage
|
||
|
Sample usage using available option to format output
|
||
|
```go
|
||
|
package main
|
||
|
|
||
|
import (
|
||
|
"os"
|
||
|
|
||
|
"github.com/sirupsen/logrus"
|
||
|
"github.com/t-tomalak/logrus-easy-formatter"
|
||
|
)
|
||
|
|
||
|
func main() {
|
||
|
logger := &logrus.Logger{
|
||
|
Out: os.Stderr,
|
||
|
Level: logrus.DebugLevel,
|
||
|
Formatter: &easy.Formatter{
|
||
|
TimestampFormat: "2006-01-02 15:04:05",
|
||
|
LogFormat: "[%lvl%]: %time% - %msg%",
|
||
|
},
|
||
|
}
|
||
|
|
||
|
logger.Printf("Log message")
|
||
|
}
|
||
|
```
|
||
|
Above sample will produce:
|
||
|
```bash
|
||
|
[INFO]: 27-02-2018 19:16:55 - Log message
|
||
|
```
|
||
|
|
||
|
##### Usage with custom fields
|
||
|
Package also allows to include custom fields and format them(for now only limited to strings)
|
||
|
|
||
|
```go
|
||
|
package main
|
||
|
|
||
|
import (
|
||
|
"os"
|
||
|
|
||
|
"github.com/sirupsen/logrus"
|
||
|
"github.com/t-tomalak/logrus-easy-formatter"
|
||
|
)
|
||
|
|
||
|
func main() {
|
||
|
logger := &logrus.Logger{
|
||
|
Out: os.Stderr,
|
||
|
Level: logrus.DebugLevel,
|
||
|
Formatter: &easy.Formatter{
|
||
|
LogFormat: "[%lvl%]: %time% - %msg% {%customField%}",
|
||
|
},
|
||
|
}
|
||
|
|
||
|
logger.WithField("customField", "Sample value").Printf("Log message")
|
||
|
}
|
||
|
```
|
||
|
And after running will output
|
||
|
```bash
|
||
|
[INFO]: 27-02-2018 19:16:55 - Log message - {Sample value}
|
||
|
```
|
||
|
|
||
|
## ToDo
|
||
|
- [x] Customizable timestamp formats
|
||
|
- [x] Customizable output formats
|
||
|
- [x] Add tests
|
||
|
- [ ] Support for custom fields other then `string`
|
||
|
- [ ] Tests against all characters
|
||
|
|
||
|
## License
|
||
|
This project is under the MIT License. See the LICENSE file for the full license text.
|