Except for the summary log, all the logs should have global and local versions. The local versions of the logs should be cumulative from test cycle to test cycle. Each local log pertains to a single test and is stored next to that test. They form a history of the execution of that test. Global logs should be reinitialized at every test cycle, and include information about all of the tests.
Logs ought to be both machine readable and human readable.
I also recommend that they be tied into an icon or some other convenient front end so that they are easy to get to. This is useful for when a test reveals a crash bug, and there is no reason to run it again until the bug is fixed. An example of this is a functional test of a program with a graphical user interface that can be configured to simulate either mouse input or keyboard input. Rather than create different sets of tests to operate in different modes and contexts, design a single test with selectable behavior. Avoid hard-coding basic operations in a given test.