logr is an open-source logger and metric service.
Helps you debug and analyze performance of your features.
Get to know your application better with logr.
Look at the demo page
- logs look like in your
Terminal
- storing data in
ClickHouse
- transport data by
WebSocket
Golang
backend
Vue.js
frontend
- Authorization by
GitHub
Usage
docker run -d -p 7776:7776/udp -p 7778:7778 --name logr kozhurkin/logr
const { Logr } = require('logr-node-client');
const conf = new Logr({
udp: ':7776',
publicKey: 'MCAwDQYJKoZIhvcNAQEBBQADDwAwDAIFAMg7IrMCAwEAAQ==',
privateKey: 'MC0CAQACBQDIOyKzAgMBAAECBQCHaZwRAgMA0nkCAwDziwIDAL+xAgJMKwICGq0=',
});
const logr = conf.newLogger('hello.log');
logr.info('Hello, Logr!');
// 2024-01-30T22:50:04+03:00 info [v1.0.41, pid=60512, cmd/hello.go:41] Hello, Logr!
Build & Run service
Docker image
docker run -d -p 7776:7776/udp -p 7778:7778 --name logr kozhurkin/logr
Enjoy:
http://localhost:7778/
Docker-compose
- Clone repository:
git clone --recurse-submodules https://github.com/504dev/logr.git && cd logr
- Generate .env file:
make env
- Edit .env file with your favourite editor
- Generate config.yml:
make config
- Run:
docker-compose up -d
- Enjoy:
http://localhost:7778/
Manual
Requirements: Node.js v20
Npm v10
Golang v1.19
ClickHouse v23
Mysql v5.7
- Clone repository:
git clone --recurse-submodules https://github.com/504dev/logr.git && cd logr
- Init config.yml file:
make config
- Fill config.yml, see Config section
- Creating databases in Clickhouse and Mysql:
clickhouse-client --query "CREATE DATABASE IF NOT EXISTS logrdb"
mysql -u root -p -e "CREATE DATABASE IF NOT EXISTS logrdb;"
- Build frontend:
make front
- Build backend:
make build
- Run:
make run
- Enjoy:
http://localhost:7778/
Config
bind:
http: ":7778"
udp: ":7776"
oauth:
jwt_secret: "santaclausdoesntexist"
github:
client_id: "9bd30997b0ee30997b0ee3"
client_secret: "1f241d37d910b11f241d37d910b11f241d37d910b1"
org: "504dev"
clickhouse: "tcp://localhost:9000?database=logr&username=logr&password=logr"
mysql: "logr:logr@tcp(localhost:3306)/logr"
jwt_secret
is random string (using to sign temporary authorization tokens)
client_id
and client_secret
is GitHub App keys (optional. set empty, if not sure)
org
is organization restriction (if set, only org members can authorize)
Client libraries
Utils