A single log file can miss the clue stored in a nested archive. Recursive searching reaches directories below the starting path. Include line numbers when another person must locate the evidence, and retain filenames when more than one source is searched. An error message without its origin makes a poor handoff.
The tasks use current and historical files so you can distinguish finding one matching row from covering the whole requested tree. A result such as logs/today.log:2:ERROR route gives you a path, a line number within that file, and the original text. Each file starts its own line count. Choose the smallest starting directory that covers the incident, then check that nested sources appear. Reaching one current log doesn't establish that the archive was searched.