I agree journaling is likely to be a significantly better solution. There have been sites that are concerned about journal performance hits; but those concerns often ignore the performance hits of bolting on procedures that also do disk writes. It's a near certainty that built-in system journal routines will be more efficient than any routines written in a HLL.
It seems bizarre to create a physically separate "audit trail" that needs to be "correlated" with existing journal entries. The journal IS the audit trail.
However, your question isn't clear. Are you simply asking how to read a journal?
If so, there are two general approaches. You can either output a selected set of journal entries to an temporary work table or use system commands or APIs to retrieve journal entries into program buffers. If you retrieve into a program's memory, you can do anything with the data you might want, e.g., query your "audit trail" to find a matching data element.
Can you give a little more detail on the process you have in mind?