Task task7_log_parser

You'll find a log file called `application.log` in the current directory. Parse this log file and extract the following information:

1. Count the total number of ERROR and WARNING level messages
2. Extract all unique IP addresses that appear in the logs
3. Find all timestamps where errors occurred
4. Identify the most common error message (if any patterns exist)

Generate a JSON file called `log_analysis.json` with the following structure:

```json
{
"total_errors": <number>,
"total_warnings": <number>,
"unique_ips": ["ip1", "ip2", ...],
"error_timestamps": ["timestamp1", "timestamp2", ...],
"most_common_error": "<error message or null>"
}
```

Make sure to handle different log formats gracefully and extract the relevant information accurately.

PS: You are currently working in an automated system and cannot ask any question or have back and forth with an user.

Results

16
Models Tested
62.5%
Success Rate
1m 26s
Avg Duration
27s - 10m 0s
Duration Range

Details

Score Model Duration Session (KB) test_1_file_exists.sh test_2_valid_json.sh test_3_correct_counts.sh test_4_unique_ips.sh test_5_error_timestamps.sh test_6_most_common_error.sh
100.0% openrouter/google/gemini-3-pro-preview 2m 0s 67.6
100.0% openrouter/anthropic/claude-opus-4.5 27s 41.8
100.0% openrouter/openai/gpt-oss-120b 42s 111.3
100.0% openrouter/x-ai/grok-3-mini 1m 5s 404.2
100.0% openrouter/openai/gpt-oss-20b 50s 109.0
100.0% openrouter/anthropic/claude-haiku-4.5 29s 58.3
100.0% openrouter/deepseek/deepseek-v3.1-terminus 32s 44.3
100.0% litellm/GLM-4.5-Air-FP8-dev 39s 138.3
100.0% openrouter/anthropic/claude-sonnet-4.5 44s 57.6
100.0% openrouter/x-ai/grok-code-fast-1 46s 76.4
83.3% openrouter/qwen/qwen3-coder 1m 14s 49.1
83.3% openrouter/google/gemini-2.5-pro 1m 48s 102.0
66.7% openrouter/google/gemini-2.5-flash-preview-09-2025 29s 103.4
66.7% openrouter/google/gemini-2.5-flash-lite-preview-09-2025 29s 154.5
16.7% openrouter/openai/gpt-4o-mini 41s 56.0
0.0% openrouter/deepseek/deepseek-chat-v3-0324 10m 0s 0.0