gLogCollector
This is a simple tool to collect and forward logs. It is able to efficiently read
new logs written in any given folder and then forward these logs via a gRPC connection.
Usage
The executable has three parameters:
--log-folders
: specify folders to read logs from. The folders need to exist! Default is ./logs,./log
--grpc-addresses
: specify the backends to send logs to. Seperate multiple servers with ,
e.g. localhost:8080,example.web.com:234
. Default is none
--grpc-port
: specify the port of the gRPC server to start. If none is set no server will be started. Default is none
You can also provide the same configuration via environment variables:
LOG_FOLDERS
GRPC_ADDRESSES
GRPC_PORT
The environment variables override the cli parameters.
The log files need to be appended to via software or in the editor.
Most modern IDEs and editors will perform two write operations on save, which results in the entire file being logged even if only one line changes!
To start the application as server for a specific port:
Windows:
logging.exe --log-folders . --grpc-port 8080
Linux:
./logging --log-folders . --grpc-port 8080
you can then connect a client that sends logs in folder ./logs
to the server:
Windows:
logging.exe --log-folders ./logs --grpc-addresses 127.0.0.1:8080
Linux:
./logging --log-folders ./logs --grpc-addresses 127.0.0.1:8080
Docker
You can also pull the image from Dockerhub:
https://hub.docker.com/repository/docker/mrwong99/logging
Generate from Protobuf file
To generate the gRPC code you need to download and install the Google Protocol Buffer Compiler.
Afterwars you have to install the following go packages:
go get -u google.golang.org/grpc
go get -u github.com/golang/protobuf/protoc-gen-go
Finally you can regenerate the [communication/log.pb.go] file using
Linux:
protoc -I communication/ communication/log.proto --go_out=plugins=grpc:communication
Windows:
protoc -I .\communication\ .\communication\log.proto --go_out=plugins=grpc:communication