©
本文档使用 PHP中文网手册 发布
大journald
日志驱动程序将容器日志发送到systemd
日刊.日志条目可以使用journalctl
命令,通过使用journal
API,或使用docker logs
命令。
除了日志消息本身的文本之外,journald
日志驱动程序将以下元数据与每条消息一起存储在日记中:
Field | Description |
---|---|
CONTAINER_ID | The container ID truncated to 12 characters. |
CONTAINER_ID_FULL | The full 64-character container ID. |
CONTAINER_NAME | The container name at the time it was started. If you use docker rename to rename a container, the new name is not reflected in the journal entries. |
CONTAINER_TAG | The container tag (log tag option documentation). |
CONTAINER_PARTIAL_MESSAGE | A field that flags log integrity. Improve logging of long log lines. |
使用journald
驱动程序作为默认日志记录驱动程序,设置log-driver
和log-opt
控件中的适当值的键。daemon.json
文件,该文件位于/etc/docker/
在linux主机上或C:\ProgramData\docker\config\daemon.json
在WindowsServer上。有关+配置Docker的更多信息,请使用daemon.json
,见+daemon.json...
下面的示例将日志驱动程序设置为journald
*
{ "log-driver": "journald"}
重新启动Docker以使更改生效。
若要为特定容器配置日志驱动程序,请使用--log-driver
标志上docker run
命令。
$ docker run --log-driver=journald ...
使用--log-opt NAME=VALUE
标志指定附加journald
日志驱动程序选项。
tag
指定要设置的模板CONTAINER_TAG
价值journald
原木。请参阅日志标记选项文档若要自定义日志标记格式,请执行以下操作。
labels
,,,env
,和eng-regex
大labels
和env
每个选项都采用逗号分隔的键列表。如果有碰撞label
和env
键的值。env
优先考虑。每个选项都会向日记中添加附加元数据和每条消息。
env-regex
与env
.将其设置为正则表达式以匹配与日志记录相关的环境变量.。它用于高级日志标记选项...
中记录的值。CONTAINER_NAME
字段是在启动时设置的容器的名称。如果你用docker rename
若要重命名容器,请使用新名称未反映在日记里。日记账条目将继续使用原始名称。
journalctl
使用journalctl
命令检索日志消息。可以应用筛选器表达式将检索到的消息限制为与特定容器关联的消息:
$ sudo journalctl CONTAINER_NAME=webserver
您可以使用其他筛选器进一步限制检索的消息。大-b
标志仅检索上次系统启动后生成的消息:
$ sudo journalctl -b CONTAINER_NAME=webserver
大-o
标志指定重试日志消息的格式。使用-o json
返回JSON格式的日志消息。
$ sudo journalctl -o json CONTAINER_NAME=webserver
journal
API此示例使用systemd
用于检索容器日志的Python模块:
import systemd.journal reader = systemd.journal.Reader()reader.add_match('CONTAINER_NAME=web') for msg in reader: print '{CONTAINER_ID_FULL}: {MESSAGE}'.format(**msg)