add log abstraction to store records in disk