You are given log lines from an Apple service and a list of error patterns to track. Write a Python function that scans the logs and returns how many times each pattern appears, along with the matching log lines for each pattern.
A log line matches a pattern if the pattern appears as a case-sensitive substring anywhere in that line. A single line may match multiple patterns. Ignore empty log lines.
logs: a list of strings, where each string is one log linepatterns: a list of unique strings representing error patterns to search forcount: number of matching log lineslines: list of matching log lines in original orderExample 1
logs = ["INFO startup complete", "ERROR timeout on request", "WARN retry", "ERROR timeout on request"], patterns = ["ERROR", "timeout"]{"ERROR": {"count": 2, "lines": ["ERROR timeout on request", "ERROR timeout on request"]}, "timeout": {"count": 2, "lines": ["ERROR timeout on request", "ERROR timeout on request"]}}Example 2
logs = ["", "UIKit failed to load", "NetworkError: disconnected"], patterns = ["failed", "Error"]{"failed": {"count": 1, "lines": ["UIKit failed to load"]}, "Error": {"count": 1, "lines": ["NetworkError: disconnected"]}}1 <= len(logs) <= 10^41 <= len(patterns) <= 1000 <= len(logs[i]) <= 5001 <= len(patterns[i]) <= 50patterns contains unique strings