AutoLogup is a small desktop tool for inspecting log files from different sources in one place.
It can load multiple files, normalize common fields, show the raw log line, and let you filter or group the result set. The UI is built with PySide6.
- File formats:
.json,.csv,.xml,.sql,.log,.txt - Combined view for multiple files
- Normalized fields such as
timestamp,username,ip,status,method,path,level,message - Dynamic fields from the source data, for example
gender - Search inside the visible logs
- Grouping by field values
- Advanced filter queries with boolean logic
You need:
- Python 3
pipPySide6
Install PySide6:
pip install PySide6If pip points to the wrong Python version, use:
python -m pip install PySide6- Install Python from python.org
- During setup, enable
Add Python to PATH - Start the app with:
python main.pyIf python does not work, try:
py main.py- Install Python with Homebrew or from python.org
- Start the app with:
python3 main.py- Install Python 3 and
pipwith your package manager - Install
PySide6withpip - On minimal desktop systems, you may also need the usual Qt/X11 desktop packages
- Start the app with:
python3 main.py- Start the app.
- Click
Load Filesand select one or more log files. - Browse the combined table view.
- Select a row to see the formatted details below.
- Use the filter bar to narrow the result.
- Press
Ctrl+Fto search inside the visible rows. - Use
Groupto group by a field and drill into one value.
Simple equality:
status=401
gender=male
protocol=tcp
Not equal:
action!=allow
status!=200
Substring match:
message contains failed
message contains timeout
Starts with:
path startsWith /api
email startsWith admin
Numeric or lexical comparisons:
severity>=8
status<500
Time ranges:
timestamp >= 2022-03-16 15:58:00
timestamp >= 3/16/2022 15:58:00
Regex:
email regex ".*@example\\.com$"
message regex "^failed.*login"
Boolean logic:
username=tim AND status=401
gender=male OR gender=female
(username=tim AND status=401) OR message contains timeout
Legacy contains syntax is still supported:
message~failed
- The filter works on both normalized fields and dynamic fields found in the source data.
- Different file formats may expose different fields.
- If a file cannot be parsed, the app keeps running and reports
0parsed entries for that file.