Merge pull request #19 from meatballhat/l2met-compat
Switching non-TTY text formatter to use %q instead of '%v'
diff --git a/README.md b/README.md
index a58bc9d..90cdb79 100644
--- a/README.md
+++ b/README.md
@@ -28,15 +28,16 @@
"time":"2014-03-10 19:57:38.562543128 -0400 EDT"}
```
-With the default `log.Formatter = new(logrus.TextFormatter)` when a TTY is not
-attached:
+With the default `log.Formatter = new(logrus.TextFormatter)` when a TTY
+is not attached, the output is compatible with the
+[l2met](http://r.32k.io/l2met-introduction) format:
```text
-time='2014-03-14 13:00:31.751756799 -0400 EDT' level='info' msg='A group of walrus emerges from the ocean' animal='walrus' size=10
-time='2014-03-14 13:00:31.751994265 -0400 EDT' level='warning' msg='The group's number increased tremendously!' omg=true number=122
-time='2014-03-14 13:00:31.752018319 -0400 EDT' level='info' msg='A giant walrus appears!' animal='walrus' size=10
-time='2014-03-14 13:00:31.752034139 -0400 EDT' level='info' msg='Tremendously sized cow enters the ocean.' animal='walrus' size=9
-time='2014-03-14 13:00:31.752048504 -0400 EDT' level='fatal' msg='The ice breaks!' omg=true number=100
+time="2014-04-20 15:36:23.830442383 -0400 EDT" level="info" msg="A group of walrus emerges from the ocean" animal="walrus" size=10
+time="2014-04-20 15:36:23.830584199 -0400 EDT" level="warning" msg="The group's number increased tremendously!" omg=true number=122
+time="2014-04-20 15:36:23.830596521 -0400 EDT" level="info" msg="A giant walrus appears!" animal="walrus" size=10
+time="2014-04-20 15:36:23.830611837 -0400 EDT" level="info" msg="Tremendously sized cow enters the ocean." animal="walrus" size=9
+time="2014-04-20 15:36:23.830626464 -0400 EDT" level="fatal" msg="The ice breaks!" omg=true number=100
```
#### Example
@@ -215,7 +216,6 @@
Third party logging formatters:
* [`zalgo`](https://github.com/aybabtme/logzalgo): invoking the P͉̫o̳̼̊w̖͈̰͎e̬͔̭͂r͚̼̹̲ ̫͓͉̳͈ō̠͕͖̚f̝͍̠ ͕̲̞͖͑Z̖̫̤̫ͪa͉̬͈̗l͖͎g̳̥o̰̥̅!̣͔̲̻͊̄ ̙̘̦̹̦.
-* [`l2met`](https://github.com/meatballhat/logrus-formatters): log in [l2met](http://r.32k.io/l2met-introduction) format.
You can define your formatter by implementing the `Formatter` interface,
requiring a `Format` method. `Format` takes an `*Entry`. `entry.Data` is a
diff --git a/examples/text.go b/examples/text.go
index b96f833..cc4bfec 100644
--- a/examples/text.go
+++ b/examples/text.go
@@ -1,12 +1,18 @@
package main
import (
+ "os"
+
"github.com/Sirupsen/logrus"
)
func main() {
log := logrus.New()
- log.Formatter = new(logrus.JSONFormatter)
+ if os.Getenv("LOG_FORMAT") == "json" {
+ log.Formatter = new(logrus.JSONFormatter)
+ } else {
+ log.Formatter = new(logrus.TextFormatter)
+ }
for {
log.WithFields(logrus.Fields{
diff --git a/text_formatter.go b/text_formatter.go
index 95c3264..ad21821 100644
--- a/text_formatter.go
+++ b/text_formatter.go
@@ -74,7 +74,7 @@
func (f *TextFormatter) AppendKeyValue(serialized []byte, key, value interface{}) []byte {
if _, ok := value.(string); ok {
- return append(serialized, []byte(fmt.Sprintf("%v='%v' ", key, value))...)
+ return append(serialized, []byte(fmt.Sprintf("%v=%q ", key, value))...)
} else {
return append(serialized, []byte(fmt.Sprintf("%v=%v ", key, value))...)
}