How to collect Docker Swarm logs to separate files, each log file for service?

Viewed 338

I have Docker Swarm enabled on my server (Docker version is 17.03.0-ce).

Docker Swarm has services which are located on different nodes.

Each service writes logs to files.

Is it possible to use some of Docker driver to collect logs from all services and store these logs centralized in separate files for each service. For example, service-1.log, service-2.log.

Is it possible to use custom file format for log file names? For example, 10-07-17-service-1.log, 10-07-17-service-2.log, 10-07-17-service-2.log?

I have read about using ELK stack but I want to implement more simple approach (write logs to files).

1 Answers

you can create a sidecar container that will execute a command like this:

docker service logs -f serviceName >> service-1-"`date +"%d-%m-%Y"`".log
Related