Mobicoop V3 logging service
Go to file
Sylvain Briat 7444e46738 Merge branch 'adminApiLog' into 'main'
Admin api log

See merge request v3/service/logger!13
2023-03-31 15:42:20 +00:00
src change extension for logs 2023-03-31 17:41:21 +02:00
.editorconfig initial commit 2022-12-23 16:36:23 +01:00
.env.dist refactor message broker 2023-03-15 17:41:16 +01:00
.eslintrc.js lint pretty --check 2023-03-30 10:47:45 +02:00
.gitignore initial commit 2022-12-23 16:36:23 +01:00
.gitlab-ci.yml lint pretty --check 2023-03-30 10:48:59 +02:00
.prettierignore lint pretty --check 2023-03-30 10:47:45 +02:00
.prettierrc.json lint pretty --check 2023-03-30 10:47:45 +02:00
Dockerfile fix dockerfile 2023-01-30 16:51:44 +01:00
README.md update readme 2023-02-07 18:33:53 +01:00
docker-compose.yml clean compose 2023-02-28 11:12:49 +01:00
jest-e2e.json initial commit 2022-12-23 16:36:23 +01:00
nest-cli.json initial commit 2022-12-23 16:36:23 +01:00
package-lock.json add health service 2023-03-31 11:03:21 +02:00
package.json add health service 2023-03-31 11:03:21 +02:00
tsconfig.build.json initial commit 2022-12-23 16:36:23 +01:00
tsconfig.json initial commit 2022-12-23 16:36:23 +01:00

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 was at the origin of the message (one or more words separated by a dot)
  • 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.create.info
  • user.create.crit
  • user.update.warning
  • auth.username.add.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.