Geneva uses multiple loggers during execution. evolve.py creates the parent logger, and creates a subfolder of the current time under the trials/ directory.

Within this directory, it creates 5 subfolders:
  • data: used for misc. data related to strategy evaluation
  • flags: used to write status files to set events
  • generations: used to store the full generations and hall of fame after each generation
  • logs: stores logs for evaluation
  • packets: stores packet captures during strategy evolution

The two main log files used by evolve.py are ga.log and ga_debug.log (everything in debug mode). As each strategy is evaluated, a <id>_engine.log, <id>_server.log, and <id>_client.log files are generated.

For example, one run’s output could be:

# ls trials

# ls trials/2020-03-23_20:03:08
data        flags       generations logs        packets

# ls trials/2020-03-23_20:03:08/logs
ga.log      ga_debug.log    zhak1n81_client.log  zhak1n81_engine.log  zhak1n81_server.log