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 | |
--exclude-pattern |
EXCLUDE_PATTERN |
only exclude 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