Aggregate logs from multiple servers in real time
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


Aggregate logs over HTTP, using node.


Install node.

On the machine(s) producing logs, run:

node smush.js config.client.example.js

And on the machine aggregating logs, run:

node smush.js config.server.example.js

Modify the configs for your unique setup.

How it works

The client tails multiple logs and performs HTTP POSTs to the server. Each post uses the log group name (e.g. messages in the example config) as the URL (e.g. http://localhost:8765/messages) and includes the latest block of log data as the POST body. The server then appends this to a local file.


  • If the client can't reach the server, it will show an error message and carry on churning. It should instead buffer log content and try and re-send it.
  • If the client is producing logs quickly, it may send them out of order to the server. It needs to use a single sender for each log group.
  • Message group names may only contain alphanumerics, dots, dashses and underscores. This is by design.