factored the runlog generation out of the socketio communication