lormatter/README.md

81 lines
2.0 KiB
Markdown
Raw Normal View History

2023-04-02 16:01:19 +00:00
[![status](https://github.com/t-tomalak/logrus-easy-formatter/workflows/Go/badge.svg)](https://github.com/t-tomalak/logrus-easy-formatter/actions)
[![Go Report Card](https://goreportcard.com/badge/github.com/t-tomalak/logrus-easy-formatter)](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.