我可以在 Docker 文档中看到: https ://docs.docker.com/config/containers/logging/gelf/
在 GELF 中,每条日志消息都是一个包含以下字段的字典: ...您自己配置的任何自定义字段
这是否意味着该驱动程序支持自定义字段?
我想为每条 GELF 消息添加自定义字段环境。我怎样才能做到这一点?
我可以在 Docker 文档中看到: https ://docs.docker.com/config/containers/logging/gelf/
在 GELF 中,每条日志消息都是一个包含以下字段的字典: ...您自己配置的任何自定义字段
这是否意味着该驱动程序支持自定义字段?
我想为每条 GELF 消息添加自定义字段环境。我怎样才能做到这一点?
文档确实对此不是很清楚,但正如这里所解释的,有一种方法可以在您的 GELF 消息中添加额外的字段,这对我有用:
您需要通过选项提供要添加的额外字段的名称--log-opt env=...
,然后通过 docker env 提供字段值,如下所示:
docker run --log-driver gelf --log-opt env=mycustomfield --log-opt gelf-address=udp://<your-domain>:12201 --env mycustomfield=mycustomvalue alpine echo hello world
您生成的日志消息将包含额外字段"mycustomfield": "mycustomvalue"
。
您是否将 GELF 消息发送到 Docker 容器中的 Graylog?如果是这样,Graylog GELF 格式确实支持自定义字段。要提供自定义字段,只需在字段名称前添加下划线,如此处所示。只要您还提供了必填字段(请参阅下面的文档参考),那么消息将被成功解析。
有关更多信息,请参阅Graylog 文档中的 GELF 部分。