The log messages before command line arguments have been parsed will not have microseconds. Make parsing robust to lack of microseconds so that sorting is done correctly, and make their timestamps show as ‘.000000’ to line up the log.
Before (note the weird sorting and ordering):
0 node0
12018-05-02T12:16:13Z
2 node1
32018-05-02T12:16:13Z
4 node2
52018-05-02T12:16:13Z
6 test 2018-05-02T12:16:13.310000Z TestFramework (INFO): Initializing test directory /tmp/testdssm30sn
After:
0 node0 2018-05-02T12:16:13.000000Z
1 node1 2018-05-02T12:16:13.000000Z
2 node2 2018-05-02T12:16:13.000000Z
3 test 2018-05-02T12:16:13.310000Z TestFramework (INFO): Initializing test directory /tmp/testdssm30sn
4 test 2018-05-02T12:16:13.314000Z TestFramework.node0 (DEBUG): bitcoind started, waiting for RPC to come up
5 test 2018-05-02T12:16:13.316000Z TestFramework.node1 (DEBUG): bitcoind started, waiting for RPC to come up
6 test 2018-05-02T12:16:13.319000Z TestFramework.node2 (DEBUG): bitcoind started, waiting for RPC to come up