164070118c | ||
---|---|---|
src | ||
.editorconfig | ||
.env.dist | ||
.eslintrc.js | ||
.gitignore | ||
.gitlab-ci.yml | ||
.prettierignore | ||
.prettierrc.json | ||
Dockerfile | ||
README.md | ||
docker-compose.yml | ||
jest-e2e.json | ||
nest-cli.json | ||
package-lock.json | ||
package.json | ||
tsconfig.build.json | ||
tsconfig.json |
README.md
Mobicoop V3 - Logger Service
Logging system for all services.
Requirements
You need Docker and its compose plugin.
A RabbitMQ instance is also required to receive messages from other services.
Installation
Copy .env.dist
to .env
:
cp .env.dist .env
and modify it to suit your needs.
Then execute :
docker compose up -d
The app runs automatically on the port defined in SERVICE_PORT
of .env
file (default : 5099).
Usage
The app subscribes to RabbitMQ queues in order to log messages. We use the routing key with the given format : <service>.<action>.<level>, with :
- service : the name of the service that has emitted the message
- action : the action that triggered the message (one or more words separated by a dot, last word should be a past action)
- level : the severity (log level) of the message, as described in RFC5424 syslog :
- emer : Emergency: system is unusable
- alert : Alert: action must be taken immediately
- crit : Critical: critical conditions
- error : Error: error conditions
- warning : Warning: warning conditions
- notice : Notice: normal but significant condition
- info : Informational: informational messages
- debug : Debug: debug-level messages
Examples of valid routing keys :
- user.created.info
- user.created.crit
- user.updated.warning
- auth.username.added.info
It is the responsibility of each service to set the routing key to the appropriate value.
To handle logs for a given service, a controller corresponding to the service must be set. In this controller, you must define a handler for each action and level. You must also define a unique RabbitMQ queue for this handler (this permits to use durable queues, allowing to keep logs in RabbitMQ even if the logger service is down).
License
Mobicoop V3 - Logger Service is AGPL licensed.