Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/Devrama/wonlog

Stream your local logs to browsers.
https://github.com/Devrama/wonlog

browser log logging logio monitoring rtail stream

Last synced: about 2 months ago
JSON representation

Stream your local logs to browsers.

Awesome Lists containing this project

README

        

# wonlog

Stream your local logs to browsers.

This project is inspired by [rtail](https://github.com/kilianc/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](https://raw.githubusercontent.com/Devrama/wonlog/master/docs/assets/images/screenshot1.png)
![Screenshot - lightmode](https://raw.githubusercontent.com/Devrama/wonlog/master/docs/assets/images/screenshot2.png)
![Screenshot - search & settings](https://raw.githubusercontent.com/Devrama/wonlog/master/docs/assets/images/screenshot3.png)
![Screenshot - detail view](https://raw.githubusercontent.com/Devrama/wonlog/master/docs/assets/images/screenshot4.png)

## Installing

Using npm:
```bash
$ npm install -g wonlog
```

Using yarn:
```bash
$ yarn global add wonlog
```

## How to use

### First, run a wonlog server
```bash
$ wonlog-server
```

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

### Third, pipe your log to wonlog agents

```bash
# 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`

```bash
$ 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

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