It would be nice if you can explain on what kind of logging system you are using and how are you planning to send logs from and to where.
Have you looked at the docker Logging-Driver? Using logging driver you can send the logs of your container to central log servers like Syslog where it will automatically have the container id + the log.
Eg: This is a log collected in a syslog server from a container that was started to ping google 3 times.
Oct 1 12:10:29 dev docker/69731620d6e1[1037]: PING google.com (216.58.220.142) 56(84) bytes of data.#015
Oct 1 12:10:29 dev docker/69731620d6e1[1037]: 64 bytes from google.com (216.58.220.142): icmp_seq=1 ttl=61 time=20.5 ms#015
Oct 1 12:10:30 dev docker/69731620d6e1[1037]: 64 bytes from google.com (216.58.220.142): icmp_seq=2 ttl=61 time=19.3 ms#015
Oct 1 12:10:31 dev docker/69731620d6e1[1037]: 64 bytes from google.com (216.58.220.142): icmp_seq=3 ttl=61 time=24.9 ms#015
Oct 1 12:10:31 dev docker/69731620d6e1[1037]: #015
Oct 1 12:10:31 dev docker/69731620d6e1[1037]: #015
Oct 1 12:10:31 dev docker/69731620d6e1[1037]: --- google.com ping statistics ---#015
Oct 1 12:10:31 dev docker/69731620d6e1[1037]: 3 packets transmitted, 3 received, 0% packet loss, time 2004ms#015
Oct 1 12:10:31 dev docker/69731620d6e1[1037]: rtt min/avg/max/mdev = 19.301/21.623/24.989/2.439 ms#015
Here you can see it includes the timestamp, the docker host name, container ID and the log.
By default, the hostname inside a container will be the short id of that container:
$ docker run -it python:3 python
Python 3.4.3 (default, Aug 23 2015, 01:11:10)
[GCC 4.9.2] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import socket; print(socket.gethostname())
954ced8d1832
Here’s the container in my ‘docker ps’ output:
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
954ced8d1832 python:3 "python" About a minute ago Up About a minute ecstatic_saha
Also, as ranjandas pointed out, you could potentially configure your logging mechanism inside the container to log to stdout. At that point, you can use docker’s logging mechanism, and configure it to go to a syslog server. The container id will be handled at that level.
application logs (django app inside the docker container. like log_info(“some user action”))
For docker logs, ranjandas suggests to use docker Logger driver. I will check this out.
For django app logs(app inside container), Jeff suggests to use a mechanism to log to stdout and will be taken care by docker logging.