Lint pretty See merge request v3/service/logger!10  | 
			||
|---|---|---|
| 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 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.