My log files have one json object per line. I use [json][1] to get a human readable output via
cat mylog.log | json -a field1 field2
Now I would like to have
tail -F mylog.log | json -a field1 field2
for a continuous output. But this seems not to
work, the shell simply hangs. If I use &|
to
avoid buffering issues, the output is as if
I only run cat
.
mylog.log
looks like this:
{"field1": entry1a, "field2": entry2a, "field3": entry3a}
{"field1": entry1b, "field2": entry2b, "field3": entry3b}
Any suggestions?
[1] https://github.com/trentm/json
It's looks like json
first loads the whole stdin
into a buffer and only then processes the data, but you should still be able to achieve stream processing by calling it for each of the lines added to the log file, something like this:
tail -F mylog.log | while read line; do echo "$line" | json -a field1 field2; done
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With