Back to Home
Blog

Log Viewer

Analyze and filter log files

Total:0
Errors:0
Warnings:0
Info:0
Debug:0

Log Entries (0)

No logs found

Upload a log file or adjust your filters

Log Details

No log selected

Click on a log entry to view details

Log Viewer Features

  • • Automatic parsing of common log formats
  • • Filter by log level (ERROR, WARN, INFO, DEBUG)
  • • Search through log messages and sources
  • • Time-based filtering (last hour, day, week)
  • • View raw log lines or parsed format
  • • Export filtered logs as JSON
  • • Real-time statistics and counts
  • • Support for various log formats and timestamps

About the Log Viewer

Reading raw log files is tedious the moment they grow past a few hundred lines — everything runs together in a monospace wall of text, and finding the one error line buried among thousands of INFO entries turns into a scroll-and-squint exercise. The Log Viewer is a browser-based tool for opening a log file and actually making sense of it: it splits each line into timestamp, level, source and message, colours the level (red for ERROR, yellow for WARN, blue for INFO, grey for DEBUG), and lets you narrow thousands of lines down to the few that matter. It's built for developers, sysadmins, and support engineers who need to dig through application, server, or system logs without installing a desktop app or piping files through grep and less on the command line.

The parser recognises the common application-log layouts: a date and time followed by a [LEVEL] and an optional [Source], an ISO timestamp in brackets followed by LEVEL Source: message, LEVEL followed by a timestamp, and a bare LEVEL: message. Lines in any other shape still load as INFO entries, so free-text search works on every file. Once a .log or .txt file is loaded you can combine four filters (level, source, a relative time window, and a text search over messages and sources), and the entry count updates with them. Filtering happens live, so you can tighten or loosen a view without reloading the file.

All parsing and filtering happens client-side in your browser, so log content never leaves your machine unless you choose to share it — a meaningful point for anyone working with logs that contain internal hostnames, IPs, or other sensitive operational details. There's no signup and no file upload to a server involved. A practical habit: start with the level filter set to Error, open the first entry in the details panel to read its raw line, then switch the level back to All and search for the request ID or service name from that line to see what happened around it.

How to view and analyze a log file

Load a log file into the Log Viewer and use the level, source, time and text filters to find what matters.

  1. 1

    Open your log file

    Click Upload and choose a .log or .txt file, or click Sample to try the tool on a built-in example log.

  2. 2

    Let it parse the entries

    Each line is split into timestamp, level, source and message when it follows a common layout such as 2026-03-02 14:05:09 [ERROR] [Service] message; other lines are kept as INFO entries.

  3. 3

    Search for what you need

    Type a keyword, error code, or request ID into the search field; it matches the message and source of each entry.

  4. 4

    Apply filters

    Narrow the list with the level menu (Error, Warning, Info, Debug), the source menu, and the Last Hour / Last Day / Last Week time window.

  5. 5

    Inspect an entry

    Click any entry to see its timestamp, source, message and raw line in the Log Details panel, and copy the raw line from there. The Raw button switches the whole list to unparsed lines.

  6. 6

    Export what you found

    Click Export to save the currently filtered entries, with the filter settings, as a JSON file you can share.

Worked examples

Find every error in the sample log

Input
Click Sample, then set the level filter to Error.
Result
Log Entries (3): [Database] Connection timeout after 30s [PaymentService] Payment processing failed: Insufficient funds [AuthService] Failed to authenticate user: Invalid token

The list is shown in reverse file order, so the last line of the file appears first.

Follow one service through the file

Input
With the sample loaded, choose AuthService in the All Sources menu (or type "auth" in the search box).
Result
Two entries: the ERROR "Failed to authenticate user: Invalid token" and the WARN "Multiple failed login attempts from IP: 192.168.1.100".

Search matches the message and the source name, not the level or the timestamp, so typing "error" will not list error lines unless the word is in the message.

A line format the parser recognises

Input
2026-03-02 14:05:09.812 [WARN] [Scheduler] Job nightly-backup took 312s
Result
Level WARN, source Scheduler, timestamp 2 March 2026 14:05:09, message "Job nightly-backup took 312s".

The same fields are read from "[2026-03-02T14:05:09Z] WARN Scheduler: message", from "WARN 2026-03-02 14:05:09 message" and, without a timestamp, from "WARN: message".

Tips and common mistakes

  • Only four level names are recognised: ERROR, WARN, INFO and DEBUG (any letter case). Lines tagged WARNING, FATAL, TRACE or CRITICAL, and lines in any other layout, are kept but filed as INFO. If your logger writes WARNING, a quick find-and-replace to WARN before uploading makes the level filter useful.
  • JSON log lines, Apache or Nginx access logs and syslog are not parsed into fields. They still load, one entry per line, so the search box works on them, but the level and source filters will not.
  • The Last Hour, Last Day and Last Week filters compare against your computer's clock right now. An old log file shows nothing under Last Hour, while lines without a timestamp are stamped with the time you loaded them and always pass.
  • Timestamps without a time zone, like "2026-03-02 14:05:09", are read as your local time. Logs written in UTC will look shifted if you are in another zone; check the Raw Log Line in the details panel when the exact time matters.
  • The Total, Errors, Warnings, Info and Debug counters count the entries the current filters show, not the whole file, so they are a quick way to see how many errors a single source produced. The trash button empties the list; click Sample to bring the example log back.
  • Export saves only what the current filters show, as a JSON file with the filter settings alongside the entries. Filter first, then export, to hand a teammate just the relevant slice.
  • The Upload button accepts .log and .txt files and reads them in the browser. Very large files are held in memory in full, so split multi-gigabyte logs before opening them.

Frequently Asked Questions

What log formats does the viewer support?

It parses plain-text application logs where each line carries a level: for example 2026-03-02 14:05:09 [ERROR] [Service] message, [2026-03-02T14:05:09Z] ERROR Service: message, ERROR 2026-03-02 14:05:09 message, or ERROR: message. JSON lines, Apache/Nginx access logs and syslog are loaded one entry per line and can be searched, but their fields are not extracted.

Can I filter log entries by severity level?

Yes. The level menu filters to ERROR, WARN, INFO or DEBUG, and it combines with the source menu, a Last Hour / Last Day / Last Week window and a plain-text search. Levels outside those four, such as FATAL or TRACE, are treated as INFO. Search is plain text, not regex.

Is my log data sent to any server?

No, all log processing happens entirely in your browser. Your log data is never uploaded or transmitted anywhere. This makes the tool safe to use with sensitive production logs.

Why do my WARNING lines appear as INFO?

The parser only knows the level names ERROR, WARN, INFO and DEBUG. Anything else, including WARNING, FATAL and TRACE, falls back to INFO with the whole line as the message. Rename the level in your file, or search for the word instead of using the level filter.

Can I see the original line instead of the parsed view?

Yes. The Raw button switches the whole list to the unmodified lines, and clicking any entry shows its raw line in the Log Details panel, with a Copy button for that single line.