Drag & drop a .log/.txt file here, or
Getting Started
LogSieve is a powerful log analysis tool that runs entirely in your browser. Use the section headers or Search Tools tabs to navigate between sections, and click section headers to expand/collapse them. The Results section is always visible so you can see your data while working.
Upload
Load your log files to start analyzing. LogSieve supports multiple formats:
- Plain text logs (.log, .txt) - Automatically detects timestamps, log levels, and multi-line events like stack traces
- JSON files (.json) - Parses structured JSON data with automatic field mapping
- NDJSON files (.ndjson) - Newline-delimited JSON for streaming logs
- CSV files (.csv) - Imports tabular data with header row detection
How to use: Drag and drop your file onto the upload area, or click "Browse..." to select a file. All processing happens in your browser - no data is uploaded to any server.
Filters & Sort
Narrow down your logs to find exactly what you need. LogSieve now uses an extensible Query Builder for structured filtering plus an Advanced Query input for free-form queries. Both are applied together when you click Apply.
- Builder rules - Create structured rules by choosing a Field, Operator and Value. Use logical operators (AND/OR) between rules. The builder is the primary filter UI and is visible by default.
- Advanced Query - Use the Advanced Query for free-form text search and regular expressions. This is now a full-width area below the Query Builder and is applied together with builder rules.
- Sort - Order results by ID, timestamp, level, or any extracted field
- Page Size - Control how many results appear per page (25-200)
Tip: Click Apply after changing filters; the Builder and Advanced Query are applied together to allow flexible AND/OR combinations. Use "Clear filters" to reset the builder and advanced query.
Query Builder
The Query Builder is an intuitive way to create structured filters without needing to remember syntax. A rule contains three parts:
- Field - Choose a field (standard fields: level, ts, message, raw or any extracted field)
- Operator - Operators are type-aware (text, numeric, date, array). Examples: equals, contains, >, <, before, after, between
- Value - Enter or pick a value. For date fields the builder shows a datetime picker and the between operator displays two pickers (start and end)
Use the logic selector between rules to chain them with AND or OR. Click the Add Rule button to add a new rule; builder changes do not automatically apply until you click Apply.
Advanced Text Query
For users who prefer a textual interface, the Advanced Query supports a compact syntax to express field filters and boolean logic:
- Field Search:
field:value(e.g.,level:ERROR) - Boolean Logic:
AND,OR,NOT - Grouping:
(level:ERROR OR level:WARN) AND app:main - Wildcards:
*(e.g.,user:admin*) - Regex:
msg:/error \d+/(quote if spaces:msg:"/fatal error/") - Existence:
has:field,missing:field - IN Operator:
level:IN(ERROR, WARN, INFO) - Comparisons:
>,<,=,!=(e.g.,latency>500) - Quotes: Use quotes for spaces:
msg:"connection failed" - Global Search: Words/phrases without
field:search the raw log line
Important: The Advanced Query is validated live but is only applied when you click Apply, keeping it separate from the builder. Saved filters remember both Builder rules and the Advanced Query.
Timestamps & Timezones
LogSieve detects timestamp formats and tries to normalize them for consistent filtering and display. Key behaviors:
- If a timestamp includes an explicit timezone (e.g.
2025-11-13T10:30:00.000Z), it is parsed as UTC and we convert it to your local timezone for display - Naive timestamps (no timezone) like
2025-11-13 10:30:20.345are treated as local timestamps - The Results table shows timestamps in your detected local timezone; a small note above the table displays your current timezone
- Filtering and date comparisons are done using canonical ISO times, but the UI uses local time for input and display for better intuition
Extractor Library
Extract structured data from unstructured logs using regular expressions with named groups:
- Create Extractors - Click "+ New Extractor" to define a regex pattern with named
groups like
(?<user>\w+) - Activate Extractors - Check the boxes next to extractors you want to use, then click "▶ Run Active"
- Apply Scope - Choose whether to apply extractors to "All rows" or only "Filtered rows"
- Merge Strategy - Control how overlapping field names are handled when multiple
extractors match:
- Last Wins - Later extractors override earlier ones
- First Wins - Keep first captured value
- Merge - Combine values (currently same as last-wins)
- Quick Test - Use the collapsible "Quick Test" section to try a pattern once without saving
When extractors create new fields, the builder will automatically surface unique values for that field as suggestions (click a value or use the datalist). This speeds up creating precise filters.
Tip: Extracted fields become sortable columns in the Results table and export cleanly to CSV/JSON.
Columns
The Columns panel (Search Tools → Columns) lets you control which fields appear in the Results table and in what order.
- Show / hide: Use the checkboxes to toggle columns on or off. Columns are shown by default.
- Reorder: Drag the ≡ handle next to a column to move it — the Results table will update to match the new order.
- Persistence: Your column visibility and order are saved in your browser so they persist across sessions.
- New fields: When extractors add new fields they will be appended to your column order so you can enable and reposition them.
- Export: JSON and CSV exports respect the current column order and only include visible columns.
Keyboard reordering is not currently implemented — open an issue if you'd like keyboard accessibility added.
Saved Filters
Save and reuse filter combinations for common queries:
- Save Current Filter - After setting up filters in the Filters & Sort section, click "Save Current Filter"
- Apply Saved Filter - Choose a saved filter from the dropdown and click "Load & Apply" to instantly apply those settings, or "Load into Filters" to load without applying
- Manage Filters - Expand the Saved Filters details to edit names/descriptions or delete filters you no longer need
Tip: Filter presets capture all settings including builder rules, Advanced Query, and sort order.
Saved filters persist both Builder rules and the text form of Advanced Query so you can reapply exact searches later. If a saved filter contains invalid settings (missing builder values, etc) we will restore as much as possible and leave blank fields for you to fix before reapplying.
Results
View and interact with your filtered log data. Above the table, get a quick overview:
- Statistics - See total row count and breakdown by log level (INFO, WARN, ERROR)
- File Info - View the filename, total line count, and active filters
- Timeline Sparkline - Visual chart showing log activity over time (grouped by minute)
The table displays ID, Timestamp, Level, Message, and any extracted fields as columns. Navigate through results using pagination buttons or see current page info. Click "raw" details toggle on any row to see the original log line. Multi-line events like stack traces are kept together as single entries.
Note: Statistics update automatically whenever you apply filters or load new data.
Tip: This section is always visible so you can see your data while working with other sections.
Summary Statistics (Beta)
The Summary Statistics panel (at the top of the Results section) provides a best-effort overview of all fields in your current results, including type detection, value distributions, and basic stats. This feature is experimental and may not always interpret field types or values perfectly.
- Shows detected field types (text, number, date, array, etc.) and summary stats for each field
- Works with filtered and extracted data—summary reflects only the current results
- To refresh the summary after changing filters or extractors: simply collapse and re-expand the Summary Statistics section to recompute stats for the latest results
- If you notice a field is interpreted incorrectly, please open a GitHub issue describing the problem!
Summary statistics are computed in your browser using a background thread for responsiveness. All results are best-effort and may not be perfect for every log format.
Tips & Troubleshooting
- Timestamps off by a few hours? Confirm whether your log timestamps have a timezone
(e.g., trailing
Z). If so we convert them to your timezone for display. You can see the detected timezone above the results. - Builder rule shows no results - ensure you filled in a value for the rule. Empty rule values are ignored when applying to avoid unexpected matches.
- Regex failing - test patterns in Quick Test first; named groups populate fields used in the Builder and results.
Import/Export
Share your work or backup your configuration:
- Export Data - Save filtered results as JSON or CSV files under Tools > Data in the top header
- Export Library - Backup all your extractors and saved filters to a JSON file under Tools > Library > Export
- Import Library - Load extractors and filters from a JSON file under Tools > Library > Import (choose merge or replace)
Privacy: All data stays in your browser. Nothing is sent to any server. Extractors and filters are saved in localStorage.
Keyboard Shortcuts
- ESC - Close any open modal dialog
Theme
Click the 🌙/☀️ button in the top header to toggle between dark and light themes. Your preference is saved automatically.
Columns
Toggle which columns are visible in the Results table.
No columns available yet. Load a file or run extractors to populate columns.
Saved Filters
—
—
Summary Statistics
no file 0 lines no filters
Times shown in UTC by default
| ID | Timestamp (local) | Level | Message |
|---|