A method for storing transaction entries generated by packet engines of cores of a multi-core device to a global heap, the method comprising: writing, by a first core of a multi-core device, intermediary to a plurality of clients and one or more servers, to a first transaction queue of the first core, a first transaction entry having a first timestamp and a first core identifier, wherein the first transaction entry corresponds to a first transaction, associated with a transaction identifier, between a client of the plurality of clients and the one or more servers; extracting, by a logging client executing on the multi-core device responsive to determining the first core wrote to the first transaction queue, the first transaction entry from the first transaction queue; chronologically storing, by the logging client, the extracted first transaction entry in a global heap stored in a memory element within the multi-core device and comprising a chronological list of transaction entries, each core of the multi-core device and the logging client having access to the global heap; writing, by a second core of the multi-core device to a second transaction queue of the second core, a second transaction entry having a second core identifier and a second timestamp later than the first timestamp of the first transaction entry, wherein the second transaction entry corresponds to the first transaction, associated with the transaction identifier, between the client of the plurality of clients and the one or more servers; extracting, by the logging client responsive to determining the second core wrote to the second transaction queue, the second transaction entry from the second transaction queue; chronologically storing, by the logging client, the extracted second transaction entry after the first transaction entry in the global heap; and wherein the logging client determines, when a transaction entry has been added to the first transaction queue or the second transaction queue, that a transaction queue head of the respective transaction queue (605A, 605B) is not in the global heap and writes the transaction queue head to the global heap, the transaction queue head comprising an entry in the respective transaction queue having an earliest timestamp. writing, by a first core of a multi-core device, intermediary to a plurality of clients and one or more servers, to a first transaction queue of the first core, a first transaction entry having a first timestamp and a first core identifier, wherein the first transaction entry corresponds to a first transaction, associated with a transaction identifier, between a client of the plurality of clients and the one or more servers; extracting, by a logging client executing on the multi-core device responsive to determining the first core wrote to the first transaction queue, the first transaction entry from the first transaction queue; chronologically storing, by the logging client, the extracted first transaction entry in a global heap stored in a memory element within the multi-core device and comprising a chronological list of transaction entries, each core of the multi-core device and the logging client having access to the global heap; writing, by a second core of the multi-core device to a second transaction queue of the second core, a second transaction entry having a second core identifier and a second timestamp later than the first timestamp of the first transaction entry, wherein the second transaction entry corresponds to the first transaction, associated with the transaction identifier, between the client of the plurality of clients and the one or more servers; extracting, by the logging client responsive to determining the second core wrote to the second transaction queue, the second transaction entry from the second transaction queue; chronologically storing, by the logging client, the extracted second transaction entry after the first transaction entry in the global heap; and wherein the logging client determines, when a transaction entry has been added to the first transaction queue or the second transaction queue, that a transaction queue head of the respective transaction queue (605A, 605B) is not in the global heap and writes the transaction queue head to the global heap, the transaction queue head comprising an entry in the respective transaction queue having an earliest timestamp.