refactor: move logger to library
fix: logger add default switch case for log modes to prevent invalid memory access
feat: add logger