A Windows desktop application for parsing, viewing, and analyzing large log files
- 🎯 Template-based parsing using regular expressions
- 🎨 Conditional row coloring based on column values
- 🔍 Advanced filtering with multiple criteria types (equality, contains, regex, comparison)
- ⚡ High performance with UI virtualization for handling millions of log entries
- 📝 Multi-line support for stack traces and extended messages
- 📊 Live file monitoring with read-only mode and file sharing
- 💾 XML template storage for easy reuse and sharing
- 🎭 Detail pane for viewing full log entry content
- Windows 10 or later
- .NET Core 8.0+
- Visual Studio 2022 or later (for development)
-
Build from source:
git clone https://github.com/valentynblaha/LogInspector.git cd loginspector # Open LogInspector.sln in Visual Studio # Build and run (F5)
-
Or download the release:
- Download the latest release from the Releases page
- Extract and run
LogInspector.exe
Templates define how your log files are parsed. Each template contains:
- A regex pattern with capture groups for each column
- Column definitions (name, data type, format)
- Color rules for conditional formatting
Sample Log:
2025-10-08 02:35:33,028 DEBUG no-user [com.yourapp.security.LoginManager] Connection established
Steps:
- Go to Template → New Template
- Enter template name:
"Java Application Log" - Enter regex pattern:
^(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2},\d{3})\s+(\w+)\s+(\S+)\s+\[([^\]]+)\]\s+(.*)$
- Add columns:
- Timestamp (Date) - Format:
yyyy-MM-dd HH:mm:ss,fff - Level (Enum)
- User (String)
- Class (String)
- Message (String)
- Timestamp (Date) - Format:
- Add color rules:
- Level = ERROR →
#FFCCCC(red) - Level = WARN →
#FFF4CC(yellow) - Level = INFO →
#E6F3FF(blue) - Level = DEBUG →
#F0F0F0(gray)
- Level = ERROR →
- Click OK
- Save:
Template → Save Template(creates an XML file) - Load:
Template → Load Template(loads existing XML) - Edit:
Template → Edit Current Template
- Load a template first
- Go to
File → Open Log File - Select your log file
- The application parses and displays the logs automatically
Apply filters to focus on specific entries:
- Go to
Filter → Add Filter - Select a column (e.g., "Level")
- Choose an operator:
- Equals - Exact match
- NotEquals - Exclude specific values
- Contains - Substring search
- NotContains - Exclude substring
- GreaterThan / LessThan - Numeric/date comparison
- Regex - Pattern matching
- Enter the value
- Click OK
Example Filters:
- Show only errors:
Level = ERROR - Show recent logs:
Timestamp > 2025-10-08 - Find specific user:
User contains batch - Complex pattern:
Message regex (?i)exception|error
Multiple filters work together (AND logic).
Click any row to see the full log entry in the detail pane. This is especially useful for:
- Multi-line stack traces
- Long error messages
- Wrapped text
Pattern:
^(\S+) \S+ \S+ \[([^\]]+)\] "(\w+) ([^"]+)" (\d{3}) (\d+)$Columns:
- IP (String)
- Timestamp (Date) -
dd/MMM/yyyy:HH:mm:ss zzz - Method (Enum)
- URL (String)
- Status (Number)
- Bytes (Number)
Pattern:
^(\d{1,2}/\d{1,2}/\d{4} \d{1,2}:\d{2}:\d{2} [AP]M)\s+(\w+)\s+(\w+)\s+(.+)$Columns:
- Timestamp (Date) -
M/d/yyyy h:mm:ss tt - Level (Enum)
- Source (String)
- Message (String)
Pattern:
^(\w{3}\s+\d{1,2} \d{2}:\d{2}:\d{2}) (\S+) (\S+)\[(\d+)\]: (.+)$Columns:
- Timestamp (Date) -
MMM d HH:mm:ss - Host (String)
- Process (String)
- PID (Number)
- Message (String)
- UI Virtualization: Only visible rows are rendered
- Background Threading: File parsing doesn't block the UI
- Filter Optimization: Filters execute in order of computational cost
- Shared File Access: Monitor logs while they're being written
| Type | Description | Examples |
|---|---|---|
| String | Plain text | "ERROR", "user123" |
| Number | Numeric values | 42, 3.14, -10 |
| Date | Timestamps | 2025-10-08 14:30:00 |
| Enum | Categorical | DEBUG, INFO, WARN, ERROR |
| Boolean | True/false | true, false |
| Operator | Cost | Description |
|---|---|---|
| Equals | Low | Exact match |
| NotEquals | Low | Exclude exact match |
| GreaterThan/LessThan | Low | Numeric/date comparison |
| Contains | Medium | Substring search |
| NotContains | Medium | Exclude substring |
| Regex | High | Pattern matching |
Solution: Load or create a template first via Template → New Template or Template → Load Template
Solution:
- Test your regex at regex101.com
- Ensure capture groups match the number of columns
- Check for escaped special characters
Solution: Specify the exact date format in the column definition (e.g., yyyy-MM-dd HH:mm:ss,fff)
Solution:
- Verify color hex codes (e.g.,
#FFCCCC) - Check that column names in color rules match exactly
- Ensure operator matches your data (case-sensitive)
Solution: The app uses background threading, but very large files may take time to parse initially. Check the progress bar.
<?xml version="1.0" encoding="utf-8"?>
<LogTemplate>
<Name>My Template</Name>
<RegexPattern>^(\d{4}-\d{2}-\d{2})\s+(\w+)\s+(.+)$</RegexPattern>
<Columns>
<ColumnDefinition>
<HeaderName>Date</HeaderName>
<DataType>Date</DataType>
<DateFormat>yyyy-MM-dd</DateFormat>
</ColumnDefinition>
<ColumnDefinition>
<HeaderName>Level</HeaderName>
<DataType>Enum</DataType>
</ColumnDefinition>
<ColumnDefinition>
<HeaderName>Message</HeaderName>
<DataType>String</DataType>
</ColumnDefinition>
</Columns>
<ColorRules>
<ColorRule>
<ColumnName>Level</ColumnName>
<Operator>=</Operator>
<Value>ERROR</Value>
<ColorHex>#FFCCCC</ColorHex>
</ColorRule>
</ColorRules>
</LogTemplate>Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the GNU GPLv3 License - see the LICENSE file for details.
- Built with WPF (Windows Presentation Foundation)
- Inspired by the need for better log analysis tools
- Thanks to all contributors and users
For questions, suggestions, or issues, please open an issue on GitHub.
Made with ❤️ for developers who love clean logs