Log4j Docker Support

Log4j supports Docker by providing a Lookup to retrieve container information.

Accessing Docker

The Log4j Docker support requires access to the Docker REST interface. In practical terms this means the application either needs access to unix:///var/run/docker.sock through a volume mount (not recommended), bind Docker to another host/port or unix socket. or use a proxy application to provide access. The Log4j Spring Cloud sample application uses a socat proxy to access Docker.

Lookup Attributes

Log4j Docker provides access to the following container attributes:

  • containerId - The full id assigned to the container.

  • containerName - The name assigned to the container.

  • imageId - The id assigned to the image.

  • imageName - The name assigned to the image.

  • shortContainerId - The first 12 characters of the container id.

  • shortImageId - The first 12 characters of the image id.

Attributes may be accessed by adding

${docker:containerId}

to the configuration. Note that docker variables are only resolved once during logging initialization so they shouldn’t be referenced with more than one ‘$’ character.

Requirements

Log4j Docker requires Log4j Core, Log4j API and a minimum of Java 8. For more information, see Runtime Dependencies.