Skip to content

Devrama/wonlog

Repository files navigation

wonlog

Stream your local logs to browsers.

This project is inspired by rtail.

Features

  • stream raw text or JSON string logs to browser
  • search logs by a keyword
  • multiple log streams to a browser
  • sort logs
  • uses WebSocket

Screenshots

Screenshot - darkmode Screenshot - lightmode Screenshot - search & settings Screenshot - detail view

Installing

Using npm:

$ npm install -g wonlog

Using yarn:

$ yarn global add wonlog

How to use

First, run a wonlog server

$ wonlog-server

Second, open your browser with http://localhost:7979

Third, pipe your log to wonlog agents

# streaming output of you node server logs to wonlog agent
$ node your_express_server.js | wonlog-agent --stream-name='My First Log stream' --verbose

# openning a log file to wonlog agent
$ cat log_file.txt | wonlog-agent --stream-name='My First Log stream' --verbose

# streaming from a growing log file to wonlog agent
$ tail -F log_file.txt | wonlog-agent --stream-name='My First Log stream' --verbose

# streaming from JSON to wonlog agent
$ echo '{ "foo": "bar" }' | wonlog-agent --stream-name='My First Log stream' --verbose
$ echo "{ foo: 'JSON5' }" | wonlog-agent --stream-name='My First Log stream' --verbose

JSON log format

Reserved Properties

  • timestamp: If timestamp property exists in a JSON formt log with either ISO Date string or the number of milliseconds elapsed since Janunary 1, 1970, TIMESTAMP column on wonlog screen shows it instead of the timestamp of current time.
  • message: If message property exists in a JSON format log, MESSAGE column shows it instead of stringified log.
  • level: If level property exists with values below in a JSON format log, TIMESTAMP column shows in different colors.
    • critical or fatal
    • error
    • warn or warning
    • info
    • debug
    • trace

CLI options

wonlog-server

$ wonlog-server --help
Usage: wonlog-server [options]

Options:
  --webapp-host [host]  WebApp Server host (default: "0.0.0.0")
  --webapp-port [port]  WebApp Server port (default: "7979")
  --server-host [host]  HTTP Server host (default: "0.0.0.0")
  --server-port [port]  HTTP Server port (default: "7978")
  -h, --help            display help for command

wonlog-agent

$ wonlog-agent --help
Usage: wonlog-agent [options]

Options:
  -h, --server-host [host]  HTTP Server host (default: "127.0.0.1")
  -p, --server-port [port]  HTTP Server port (default: "7978")
  -s, --stream-name [name]  Stream name
  -v, --verbose [type]      Print logs (default: false)
  --help                    display help for command

Running wonlog-server with Docker

$ docker pull devrama/wonlog:latest
$ docker run --name wonlog-server -d -p 7979:7979 -p 7978:7978 devrama/wonlog:latest