log.io

Real-time log monitoring
in your browser

Powered by node.js + socket.io

View @ github

How does it work?

Inputs watch log files for changes, send new log messages to the server, which broadcasts to web clients. Log messages are tagged with stream and source information based on user configuration.

log.io has no persistence layer. File inputs are informed of file changes via inotify, and log messages hop from input to server to web client via TCP and socket.io, respectively.

Activate streams & sources to watch log messages

Simple TCP interface

log.io uses a stateless TCP API to receive log messages.

Writing a third party harvester is easy. Open a TCP connection to the server and begin writing properly formatted messages to the socket.

Read the API documentation.

Send a log message

+msg|streamName1|sourceName1|this is log message\0

Register a new input

+input|streamName1|sourceName1\0

Remove an input

-input|streamName1|sourceName1\0

Install log.io

1. Install server via npm

npm install -g log.io

2. Launch server

log.io-server

3. Install file input via npm

npm install -g log.io-file-input

4. Configure file input

nano ~/.log.io/inputs/file.json

5. Start file input

log.io-file-input

5. Browse to http://localhost:6688

Configure file input

Modify ~/.log.io/inputs/file.json

{ "messageServer": { "host": "127.0.0.1", "port": 6689 }, "inputs": [ { "source": "server1", "stream": "app1", "config": { "path": "/var/logs/app1-server1.log" } }, { "source": "server2", "stream": "app1", "config": { "path": "/var/logs/app1-server2.log" } } ] }