Versions:

Loggers

You can add a logger to your crawler to get log output and see what it is/was doing. It takes any implementation of the PSR-3 LoggerInterface.

use Crwlr\Crawler\HttpCrawler;
use Psr\Log\LoggerInterface;

class MyCrawler extends HttpCrawler
{
    protected function logger(): LoggerInterface
    {
        return new MyLogger();
    }

    // user agent...
}

As you can see the method to add a logger to the crawler is via the protected logger() method. It's called only once in the constructor of the Crawler class, and then the logger instance is automatically handed over to every step that you add to the crawler.

As default, the Crawler class uses the CliLogger shipped with the package that just echoes the log lines. So you only need to set your own if you want to use a different logger.

The included steps always log some information about what they are doing. In your custom steps you can use the logger via $this->logger. That's the same in all callbacks that are bound to a step, like the withInput() hook in loops and updateInputUsingOutput() in groups.