Sometimes I like to annotate these kinds of logs with a bit of additional information. For example, ROMIO's two-phase collective I/O algorithim will divide a very large request into multiple rounds of I/O, and occasionally it is helpful to sort out which I/O came from which round.
In this approach I am increasing the size of the segment_info... by a lot, which will greatly cut down the maximum number of log entries. Maybe a small malloc is a better approach, especially since I imagine "extra info" will be uncommonly used. Let me know and I can implement this with malloc.