Skip to content

Advanced Filtering

Nicholas Cheek edited this page Jun 14, 2025 · 1 revision

Advanced Filtering

Laravel Log Parser provides powerful filtering capabilities to help you find exactly what you need in your log files.

Time-Based Filtering

Date Formats

Full date

logparse --since=2024-01-15 laravel.log

Date with time

logparse --since="2024-01-15 14:30" laravel.log

Date ranges

logparse --since=2024-01-15 --until=2024-01-16 laravel.log

Relative Time References

Today's logs

logparse --since=$(date +%Y-%m-%d) laravel.log

Last hour

logparse --since="$(date -d '1 hour ago' '+%Y-%m-%d %H:00')" laravel.log

Yesterday

logparse --since="$(date -d 'yesterday' '+%Y-%m-%d')" --until="$(date +%Y-%m-%d)" laravel.log

Log Level Filtering

Single Level

logparse --level=ERROR laravel.log logparse --level=WARNING laravel.log logparse --level=INFO laravel.log logparse --level=DEBUG laravel.log

Error Focus

Errors and warnings only

logparse --errors-only laravel.log

Combine with other filters

logparse --errors-only --since=today laravel.log

Content Search

Basic Text Search

Case-insensitive search

logparse --search="database" laravel.log logparse --search="timeout" laravel.log logparse --search="Class not found" laravel.log

Search Patterns

Method calls

logparse --search="Call to undefined method" laravel.log

Database issues

logparse --search="SQLSTATE" laravel.log

Memory issues

logparse --search="memory" laravel.log

Authentication problems

logparse --search="Unauthenticated" laravel.log

User-Based Filtering

Single User

logparse --user=123 laravel.log

User Activity Analysis

User activity today

logparse --user=123 --since=today laravel.log

User errors only

logparse --user=123 --errors-only laravel.log

Result Limiting

Recent Entries

Last 50 entries

logparse --last=50 laravel.log

Last 10 errors

logparse --last=10 --errors-only laravel.log

Complex Filter Combinations

Production Debugging

Critical errors in last 2 hours

logparse --level=ERROR --since="$(date -d '2 hours ago' '+%Y-%m-%d %H:00')" production

User-specific issues today

logparse --user=456 --errors-only --since=today staging

Database problems this morning

logparse --search="database" --since="$(date '+%Y-%m-%d') 06:00" --until="$(date '+%Y-%m-%d') 12:00" production

Development Workflow

Recent payment processing errors

logparse --search="payment" --errors-only --last=100 laravel.log

Authentication issues for specific user

logparse --search="auth" --user=789 --since="2024-01-15 09:00" laravel.log

Performance issues in the last hour

logparse --search="slow|timeout|memory" --since="$(date -d '1 hour ago' '+%Y-%m-%d %H:00')" production

Filter Performance Tips

  1. Use time filters first - They reduce the dataset size quickly
  2. Combine --errors-only with content search - Focuses on problematic entries
  3. Use --last for recent debugging - Faster than processing entire files
  4. SSH filters are processed remotely - More efficient for large remote files

Regular Expressions

While direct regex support isn't built-in, you can combine with standard Unix tools:

Pipe to grep for regex patterns

logparse --json laravel.log | jq -r '.[] | select(.message | test("regex-pattern"))'

Use with standard tools

logparse laravel.log | grep -E "pattern"

Clone this wiki locally