Replace prints with a proper logger + nicer description and code quality

The new logger is responsible for printing information both to the file and stdout.