docker-logger is a small application collecting logs from other containers on the host that started without
the -t option and configured with a logging driver that works with docker logs (journald and json-file).
It can forward both stdout and stderr of containers to local, rotated files and/or to remote syslog.
note: dkll inlcudes all functionality of docker-logger, but adds server and cli client
Copy provided docker-compose.yml, customize if needed and run with docker-compose up -d. By default docker-logger will collect all logs from containers and put it to ./logs directory.
All changes can be done via container's environment in docker-compose.yml or with command line
| Command line | Environment | Default | Description |
|---|---|---|---|
--docker | DOCKER_HOST | unix:///var/run/docker.sock | docker host |
--syslog-host | SYSLOG_HOST | 127.0.0.1:514 | syslog remote host (udp4) |
--files | LOG_FILES | No | enable logging to files |
--syslog | LOG_SYSLOG | No | enable logging to syslog |
--max-size | MAX_SIZE | 10 | size of log triggering rotation (MB) |
--max-files | MAX_FILES | 5 | number of rotated files to retain |
--mix-err | MIX_ERR | false | send error to std output log file |
--max-age | MAX_AGE | 30 | maximum number of days to retain |
--exclude | EXCLUDE | excluded container names, comma separated | |
--include | INCLUDE | only included container names, comma separated | |
--include-pattern | INCLUDE_PATTERN | only include container names matching a regex | |
TIME_ZONE | UTC | time zone for container | |
--json, -j | JSON | false | output formatted as JSON |
- at least one of destinations (
filesorsyslog) should be allowed - location of log files can be mapped to host via
volume, ex:- ./logs:/srv/logs(seedocker-compose.yml) - both
--excludeand--includeflags are optional and mutually exclusive, i.e. if--excludedefined--includenot allowed, and vise versa. - both
--includeand--include-patternflags are optional and mutually exclusive, i.e. if--includedefined--include-patternnot allowed, and vise versa.
- clone this repo -
git clone https://github.com/umputun/docker-logger.git - build the logger -
cd docker-logger && docker build -t umputun/docker-logger . - try it -
docker run -it --rm -v $(pwd)/logs:/srv/logs -v /var/run/docker.sock:/var/run/docker.sock umputun/docker-logger /srv/docker-logger --files