add LogGenerator and test cases