Context fields connect a log line to a request, job, or user action. Keeping the field name stable makes later filtering simple.

Program

Play the script to choose the request id and see it included in the log line.

request_id
log_context_line.sh
Replay: real traced execution (multi-file project)
#!/usr/bin/env bash

request_id="req-7"
service="api"
status="ok"
line="service=$service request=$request_id status=$status"
echo "$line"
#!/usr/bin/env bash

request_id="req-8"
service="api"
status="ok"
line="service=$service request=$request_id status=$status"
echo "$line"
  1. request_id ← req-7

    3request_id="req-7"4service="api"
    values this stepreq-7request_id
  2. service ← api

    3request_id="req-7"4service="api"5status="ok"
    values this stepapiservice
  3. status ← ok

    4service="api"5status="ok"6line="service=$service request=$request_id status=$status"
    values this stepokstatus
  4. line ← service=api request=req-7 status=ok

    5status="ok"6line="service=$service request=$request_id status=$status"7echo "$line"
    values this stepservice=api request=req-7 status=oklineapiservicereq-7request_idokstatus
  5. echo "$line"

    6line="service=$service request=$request_id status=$status"7echo "$line"
    outputservice=api request=req-7 status=ok
    values this stepservice=api request=req-7 status=okline
  1. request_id ← req-8

    3request_id="req-8"4service="api"
    values this stepreq-8request_id
  2. service ← api

    3request_id="req-8"4service="api"5status="ok"
    values this stepapiservice
  3. status ← ok

    4service="api"5status="ok"6line="service=$service request=$request_id status=$status"
    values this stepokstatus
  4. line ← service=api request=req-8 status=ok

    5status="ok"6line="service=$service request=$request_id status=$status"7echo "$line"
    values this stepservice=api request=req-8 status=oklineapiservicereq-8request_idokstatus
  5. echo "$line"

    6line="service=$service request=$request_id status=$status"7echo "$line"
    outputservice=api request=req-8 status=ok
    values this stepservice=api request=req-8 status=okline
context field A context field links the line to a specific operation.
request id A request id lets multiple lines from one request be found together.
field name Stable field names make logs useful to both humans and tools.