fix-log-decorate
v0.2.6
Published
Decorates FIX protocol messages in console to make them easier to read
Downloads
9
Maintainers
Readme
A Node.js command line parser for FIX protocol messages. This decorates FIX messages with colours fieldnames and value lookups, making them easer to read.
Install
- Node.js is required (https://nodejs.org/en/download/).
- Then
npm install -g fix-log-decorate(or otherwise just usenpx fix-log-decoratedirectly in the command line).
To update, you can run npm update -g fix-log-decorate
Example
You can pipe FIX message containing logs to fix-log-decorate:
echo "8=FIX.4.1|9=61|35=A|34=1|49=EXEC|52=20121105-23:24:06|56=BANZAI|98=0|108=30|10=003|" \
| fix-log-decorateOr use npx fix-log-decorate, here reading a log file in real time with tail -f, and using some switches to control output. grep --line-buffered -v 35=0 will skip heartbeats: --line-buffered is sometimes necessary to get lines to pass through the pipe.
tail -f someFIXlog.log | \
grep --line-buffered -v 35=0 | \
npx fix-log-decorate --skip="8 9 10" --usenumber=0 --usenewline=1 --delim=" "(Alternatively you could pipe to node fix-log-decorate.mjs with a local install).
Screenshot

Switches
--usenumber=[1|0]
--usename=[1|0]
--usevalue=[1|0]
--uselookup=[1|0]
--usenewline=[0|1]
--skipseen=[1|0]
--skip="9 35 BeginString",
--keep="8 10 MsgType"
--highlight="52 Symbol BTCUSD 1583.81"
--delim=|
--help
--version--use...switches control which elements are shown. They default to on (1), except for--usenewline, which defaults to off (0).--skipseencontrols whether field and lookup values which are repeated are displayed again. This is useful to keep output size for messages with repeated fields (such as market data) small. Defaults to on (1).--skipand--keepallow exclusion or inclusion of fields by name or number. Default to nothing (i.e. include all fields). Fields are delimited by spaces.--highlightis a space delimited list of field names, numbers, values and lookup values to highlight in yellow, to make them stand out. Defaults to nothing.--delimsets the output delimiter (both "|" and ascii code 1 are accepted as delimiter input). Default is "|".
References
- Fix protocol: https://www.fixtrading.org/what-is-fix/
- NPM: https://www.npmjs.com/package/fix-log-decorate
- Online fix parser: https://fixparser.targetcompid.com/
