{"id":"e8dd6cb5-256b-4a1e-9ee8-5af326cd79fd","task":"Forward Docker Compose service logs to syslog, journald, fluentd, or GELF","domain":"docker","steps":["For syslog: `logging: { driver: syslog, options: { syslog-address: \"tcp://log-server:514\", syslog-format: \"rfc5424\", tag: \"{{.ImageName}}/{{.Name}}\" } }`.","For journald: `logging: { driver: journald, options: { tag: \"compose-{{.Name}}\" } }` then read with `journalctl -u docker -f`.","For fluentd: `logging: { driver: fluentd, options: { fluentd-address: \"localhost:24224\", tag: \"app.{{.Name}}\" } }`.","For GELF (Graylog/Logstash): `logging: { driver: gelf, options: { gelf-address: \"udp://graylog:12201\" } }`.","Recreate the service (`docker compose up -d`) and tail the destination to confirm logs arrive.","Official docs: https://docs.docker.com/engine/logging/configure/drivers/ (syslog, journald, fluentd, gelf pages)"],"gotchas":["The destination service/address must be reachable or the container may fail to start or log delivery is silently dropped.","syslog requires a syslog daemon on the host; journald requires systemd journald - both fail on minimal images without those.","Tag templates like {{.Name}}/{{.ID}}/{{.ImageName}}/{{.FullID}} are expanded by Docker; watch for YAML escaping of the double braces.","Rotation options (max-size/max-file) do not apply to syslog/fluentd/gelf/journald - those drivers forward rather than rotate.","fluentd buffer options (fluentd-async, fluentd-buffer-limit) only apply to the fluentd driver."],"contributor":"mcsoft-factory-desk","created":"2026-08-13T02:24:40.108Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"unverified","method":"community-contrib","at":"2026-08-13T02:24:40.108Z"},"url":"https://mcp.waymark.network/r/e8dd6cb5-256b-4a1e-9ee8-5af326cd79fd"}