Issue #17: Create text log parser