[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-docker-kak-ustroeno-logirovanie-v-docker":3},{"id":4,"slug":5,"topicId":6,"topicSlug":7,"topicName":8,"topicEmoji":9,"question":10,"answer":11,"codeLang":12,"codeSrc":12,"important":12,"commonMistakes":12,"modernUsage":12,"difficulty":13,"tags":14,"related":19,"progress":20,"seo":21},719,"kak-ustroeno-logirovanie-v-docker",17,"docker","Docker","🐳","Как устроено логирование в Docker?","Docker перехватывает потоки stdout и stderr процесса внутри контейнера и направляет их в систему логирования через настраиваемый драйвер.\n\n### Просмотр логов\n\n```bash\ndocker logs myapp              # Все логи\ndocker logs -f myapp           # Следить в реальном времени (follow)\ndocker logs --tail 100 myapp   # Последние 100 строк\ndocker logs --since 2h myapp   # Логи за последние 2 часа\ndocker logs --timestamps myapp # С временными метками\n```\n\n### Драйверы логирования (logging drivers)\n\n| Драйвер | Описание |\n|---|---|\n| `json-file` | По умолчанию. Хранит логи в JSON-файлах на хосте |\n| `local` | Оптимизированный формат хранения |\n| `syslog` | Отправка в syslog |\n| `journald` | Отправка в systemd journal |\n| `fluentd` | Отправка в Fluentd |\n| `awslogs` | Отправка в Amazon CloudWatch |\n| `gelf` | Отправка в Graylog (GELF формат) |\n\n```bash\n# Указать драйвер при запуске\ndocker run --log-driver=json-file \\\n           --log-opt max-size=10m \\\n           --log-opt max-file=3 \\\n           my-spring-app\n```\n\n### Настройка в docker-compose.yml\n\n```yaml\nservices:\n  app:\n    image: my-spring-app\n    logging:\n      driver: json-file\n      options:\n        max-size: \"10m\"\n        max-file: \"3\"\n```\n\n### Рекомендации для Java-приложений\n\n- Направляйте логи в stdout\u002Fstderr вместо файлов. В Spring Boot для этого достаточно не настраивать file appender\n- Используйте структурированное логирование (JSON) для удобства парсинга системами агрегации (ELK, Loki)\n- Настройте ограничение размера логов (`max-size`, `max-file`), чтобы не переполнить диск\n- В production используйте централизованные системы логирования (ELK Stack, Grafana Loki, Graylog)\n\n\u003Cdetails>\u003Csummary>Пример JSON-логирования в Spring Boot (logback-spring.xml)\u003C\u002Fsummary>\n\n```xml\n\u003Cconfiguration>\n    \u003Cappender name=\"STDOUT\" class=\"ch.qos.logback.core.ConsoleAppender\">\n        \u003Cencoder class=\"net.logstash.logback.encoder.LogstashEncoder\"\u002F>\n    \u003C\u002Fappender>\n    \u003Croot level=\"INFO\">\n        \u003Cappender-ref ref=\"STDOUT\"\u002F>\n    \u003C\u002Froot>\n\u003C\u002Fconfiguration>\n```\n\n\u003C\u002Fdetails>\n\n> **На собеседовании:** ключевой принцип: приложение в контейнере должно писать логи в stdout\u002Fstderr, а не в файлы. Docker сам собирает эти потоки и направляет в настроенный драйвер. Обязательно упомяните `max-size`\u002F`max-file` — без них логи могут заполнить диск хоста. Знание ELK\u002FLoki как production-решения — плюс.","","middle",[15,16,17,18,7],"elk","logging","spring-boot","monitoring",[],null,{"title":22,"description":23,"ogTitle":24,"ogDescription":25,"keywords":26,"schemaAnswer":37,"featuredSnippetReady":38},"Логирование в Docker: драйверы и best practices — Gymterview","Логирование в Docker: перехват stdout\u002Fstderr, драйверы (json-file, fluentd, awslogs), max-size\u002Fmax-file, JSON-логирование в Spring Boot, ELK\u002FLoki.","Логирование в Docker: драйверы и настройка — Gymterview","Docker перехватывает stdout\u002Fstderr контейнера. Драйверы логирования, ограничение размера и интеграция с ELK\u002FLoki.",[27,28,29,30,31,32,33,34,35,36],"Docker логирование","docker logs","logging driver","json-file","fluentd","max-size","ELK Stack","Grafana Loki","Spring Boot логи","собеседование","Docker перехватывает stdout и stderr контейнера и направляет в logging driver. Драйверы: json-file (по умолчанию), local, syslog, journald, fluentd, awslogs, gelf. Команды: docker logs, docker logs -f (follow), docker logs --tail 100. Ключевой принцип: приложение пишет в stdout\u002Fstderr, не в файлы. Обязательно настройте max-size\u002Fmax-file, иначе логи заполнят диск. В production — ELK Stack, Grafana Loki, Graylog.",true]