log_viewer

Log Viewer Application

Overview

Log Viewer is a powerful, cross-platform GUI application designed for viewing, searching, and analyzing log files. Built with PyQt6, it provides advanced features for handling large log files, ANSI color support, configurable text highlighting, and intuitive search capabilities.

Features

Core Functionality

Search & Navigation

Text Highlighting System

User Interface

Performance Optimizations

Installation

Prerequisites

Dependencies

The application requires the following Python packages:

Installation Methods

Method 1: Platform-Specific Packages

# Install the RPM package (replace VERSION with current version)
sudo rpm -ivh LogViewer-VERSION-0.rpm

# Launch the application
logviewer
# Download the appropriate DMG for your Mac:
# Intel Macs: LogViewer-VERSION-macOS-x86_64.dmg
# Apple Silicon (M1/M2/M3): LogViewer-VERSION-macOS-arm64.dmg

# Mount the DMG (replace VERSION with current version)
open LogViewer-VERSION-macOS-arm64.dmg  # or x86_64 version

# Drag "Log Viewer.app" to Applications folder
# Launch from Applications or Launchpad
Windows (EXE/Installer)
# Option 1: Download and run the installer (replace VERSION with current version)
LogViewer-VERSION-Setup.exe

# Option 2: Run the portable executable directly (replace VERSION with current version)
LogViewer-VERSION.exe

# Option 3: Silent installation for enterprise deployment
LogViewer-VERSION-Setup.exe /VERYSILENT /NORESTART /SUPPRESSMSGBOXES /DIR="C:\Program Files\LogViewer"

Silent Installation Options:

Code Signing for Microsoft Store: See rpmbuild/SOURCES/CODE_SIGNING_GUIDE.md for comprehensive code signing setup to meet Microsoft Store Policy 10.2.9 requirements.

Method 2: Source Installation

# Clone the repository
git clone <repository-url>
cd log_viewer

# Install dependencies
pip install -r requirements.txt

# Run the application
python log_viewer.py

Method 3: Build from Source

Linux/General
# Build the standalone executable
cd rpmbuild/SOURCES
./Build_App.sh

# Run the built executable
./log_viewer
macOS
# Build macOS app bundle
cd rpmbuild/SOURCES
./Build_App_MacOS.sh

# Create DMG package
./Create_DMG_MacOS.sh

# Or build everything at once
./Build_All_MacOS.sh
Windows
# Use the existing Windows build process
cd rpmbuild/SOURCES
pyinstaller LogViewer.spec

Usage

Basic Usage

Opening Files

  1. GUI Method: Click “Open Log File” button and select your file
  2. Command Line: log_viewer /path/to/logfile.log
  3. Drag & Drop: Drag log files into the application window

Searching

  1. Basic Search: Type search term in the search box and press Enter
  2. Navigation: Use “Find Next” and “Find Previous” buttons
  3. Case Sensitivity: Search is case-insensitive by default

Font Size Adjustment

Advanced Features

Configurable Highlighting

  1. Click “Configure Highlighting” button
  2. Add highlight terms with custom colors
  3. Edit existing terms or remove unwanted ones
  4. Save configurations for reuse

Custom Configuration Files

  1. Click “Load Config” to load different highlight configurations
  2. Create project-specific or log-type-specific configurations
  3. Share configurations across team members

Command Line Options

# Open specific file
log_viewer /path/to/file.log

# Use custom configuration
log_viewer --config /path/to/config.yml /path/to/file.log

# Show help
log_viewer --help

Configuration Files

Default Configuration

The application looks for config.yml in the current directory. Example:

highlight_terms:
  - term: "ERROR"
    color: "#ff0000"
  - term: "WARNING"
    color: "#ffff00"
  - term: "INFO"
    color: "#00ff00"
  - "DEBUG"  # Uses default color

Configuration Structure

Technical Details

Architecture

Performance Characteristics

Platform Compatibility

Platform Support Package Format Configuration Path
Linux ✅ Full RPM, Source ./config.yml
macOS ✅ Full DMG (App Bundle) - Dual Architecture ~/Library/Application Support/LogViewer/
Windows ✅ Full EXE, Source %APPDATA%\LogViewer\

macOS Architecture Support

Version Management

All builds use centralized version management from rpmbuild/SOURCES/Build_Version:

# Update version for all platforms
echo "VERSION=3.2.0" > rpmbuild/SOURCES/Build_Version

System Requirements

Technical Compatibility

Version Management Scripts

The following utility scripts maintain version consistency across platforms:

Version Update Scripts

cd rpmbuild/SOURCES

# Update RPM spec file version
./update_rpm_version.sh

# Update Windows installer version and executable references
python update_inno_version.py

# Update Windows version info
python generate_version_info.py

These scripts are automatically called during the build process but can be run manually if needed.

Note: The update_inno_version.py script updates all version references in the Inno Setup installer script, including:

This ensures complete version consistency across all installer components.

Development

Project Structure

log_viewer/
├── log_viewer.py          # Main application
├── requirements.txt       # Dependencies
├── config.yml            # Default configuration
├── README.md             # This file
├── rpmbuild/
│   ├── SOURCES/          # Build sources
│   │   ├── Build_App.sh  # Build script
│   │   └── log_viewer.spec # PyInstaller spec
│   └── SPECS/           # RPM spec files
└── documentation/        # Additional docs

Building for Different Platforms

Linux

# Build standalone executable (includes automatic RPM spec version update)
cd rpmbuild/SOURCES
./Build_App.sh

# Build RPM package
cd ../..
./RPM_Build.sh

Note: The build process automatically updates the RPM spec file with the current version from Build_Version.

macOS

# Build both architectures (Intel x86_64 + Apple Silicon arm64)
cd rpmbuild/SOURCES
./Build_All_MacOS_Dual.sh

# Or build specific architecture:
./Build_All_MacOS_Dual.sh --x86_64-only    # Intel only
./Build_All_MacOS_Dual.sh --arm64-only     # Apple Silicon only

# Legacy single architecture build:
./Build_All_MacOS.sh      # Uses current system architecture
./Build_App_MacOS.sh      # Creates app bundle
./Create_DMG_MacOS.sh     # Creates DMG installer

Windows

# Build executable and installer (includes automatic version updates)
cd rpmbuild/SOURCES
Build_All_Windows.bat

# Output files (versioned):
# - LogViewer-{VERSION}.exe (portable executable)
# - LogViewer-{VERSION}-Setup.exe (installer)

# Or build individually:
Build_App_Windows.bat          # Creates LogViewer-{VERSION}.exe with dynamic versioning
# Then use Inno Setup to compile LogViewer_Installer.iss for installer

# Manual build using PyInstaller:
python update_inno_version.py  # Update installer script version
pyinstaller --noconfirm log_viewer_windows.spec

Note: The build process automatically:

Cross-Platform GitHub Actions

Release Process

  1. Update Version: echo "VERSION=3.2.0" > rpmbuild/SOURCES/Build_Version
  2. Create Tag: Push a version tag (e.g., v3.2.0) to trigger all platform builds
  3. Wait for Builds: Monitor the Actions tab until all 3 platform workflows complete
  4. Create Release: Go to Actions → “Manual Comprehensive Release” → Run workflow
  5. Add Artifacts: Download artifacts from completed builds and upload to the draft release
  6. Publish: Review and publish the comprehensive release

📋 Detailed Process: See RELEASE_PROCESS.md for complete instructions
🔧 Version Scripts: See rpmbuild/SOURCES/VERSION_SCRIPTS.md for version management details

Artifacts Included in Release

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Test thoroughly
  5. Submit a pull request

Troubleshooting

Common Issues

Application Won’t Start

Large Files Loading Slowly

Search Not Working

Highlighting Not Showing

Performance Tips

License

This software is proprietary to Michette Technologies. All rights reserved.

Support

For technical support, bug reports, or feature requests, please contact:

Version History

Version 3.6.1 (Current)

Version 3.6.0

Version 3.2.0

Version 3.0.0

Version 1.3.1

Version 1.2.5

Version 1.0.0