{"id":30811754,"url":"https://github.com/0xahmadyousuf/php-error-log-viewer","last_synced_at":"2025-09-06T06:49:13.823Z","repository":{"id":310136732,"uuid":"1038626429","full_name":"0xAhmadYousuf/PHP-Error-Log-Viewer","owner":"0xAhmadYousuf","description":"professional, feature-rich PHP Error Log Viewer","archived":false,"fork":false,"pushed_at":"2025-08-16T00:42:10.000Z","size":2660,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-08-16T01:31:28.907Z","etag":null,"topics":["error","error-log","error-log-viewer","php","php-error","php-log","php-panel","php-project","raw-php"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/0xAhmadYousuf.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-08-15T14:45:55.000Z","updated_at":"2025-08-16T00:42:13.000Z","dependencies_parsed_at":"2025-08-16T01:31:32.058Z","dependency_job_id":"5969bd41-d6d0-4ac0-b774-9ae27d174e63","html_url":"https://github.com/0xAhmadYousuf/PHP-Error-Log-Viewer","commit_stats":null,"previous_names":["0xahmadyousuf/php-error-log-view"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/0xAhmadYousuf/PHP-Error-Log-Viewer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0xAhmadYousuf%2FPHP-Error-Log-Viewer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0xAhmadYousuf%2FPHP-Error-Log-Viewer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0xAhmadYousuf%2FPHP-Error-Log-Viewer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0xAhmadYousuf%2FPHP-Error-Log-Viewer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/0xAhmadYousuf","download_url":"https://codeload.github.com/0xAhmadYousuf/PHP-Error-Log-Viewer/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0xAhmadYousuf%2FPHP-Error-Log-Viewer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273868142,"owners_count":25182423,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-06T02:00:13.247Z","response_time":2576,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["error","error-log","error-log-viewer","php","php-error","php-log","php-panel","php-project","raw-php"],"created_at":"2025-09-06T06:49:09.560Z","updated_at":"2025-09-06T06:49:13.814Z","avatar_url":"https://github.com/0xAhmadYousuf.png","language":"PHP","readme":"# PHP Error Log Viewer 🐘\n\n[![GitHub](https://img.shields.io/github/license/0xAhmadYousuf/PHP-Error-Log-Viewer)](https://github.com/0xAhmadYousuf/PHP-Error-Log-Viewer)\n[![GitHub stars](https://img.shields.io/github/stars/0xAhmadYousuf/PHP-Error-Log-Viewer)](https://github.com/0xAhmadYousuf/PHP-Error-Log-Viewer/stargazers)\n[![GitHub forks](https://img.shields.io/github/forks/0xAhmadYousuf/PHP-Error-Log-Viewer)](https://github.com/0xAhmadYousuf/PHP-Error-Log-Viewer/network)\n\nA **professional, feature-rich PHP Error Log Viewer** with advanced tracking, progress monitoring, and beautiful dark/light themes. Perfect for developers who want to efficiently monitor, track, and resolve PHP errors with a modern, intuitive interface.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"assets/Screenshot_001.png\" alt=\"Screenshot_001\" width=\"200\"/\u003e\n\u003c/p\u003e\n\n## ✨ Features\n\n### 🎯 **Core Functionality**\n- **Real-time Error Parsing**: Automatically parses and categorizes PHP error logs\n- **Multi-file Error Support**: Handles errors from multiple PHP files and libraries\n- **Smart Error Grouping**: Groups similar errors for better organization\n- **Stack Trace Analysis**: Detailed stack trace viewing for complex errors\n- **Error Log Clearing**: One-click error log cleanup with confirmation\n\n### 📊 **Advanced Tracking \u0026 Progress**\n- **Error Resolution Tracking**: Mark errors as solved with developer attribution\n- **Reoccurrence Detection**: Automatically detects when solved errors occur again\n- **Visual Progress Bars**: Segmented progress bars with diagonal stripes for solved errors\n- **Master Progress Overview**: Comprehensive dashboard showing overall error resolution status\n- **Developer Identity Management**: Track who solved which errors with persistent cookie storage\n\n### 🎨 **Modern UI/UX**\n- **Dark/Light Theme Toggle**: VS Code-style themes with smooth transitions\n- **Responsive Design**: Works perfectly on desktop, tablet, and mobile devices\n- **Color-coded Error Types**: Instant visual identification of error severity\n  - 🔴 **Fatal/Error**: Red tags with shadows\n  - 🟡 **Warning**: Yellow tags with shadows\n  - 🔵 **Notice**: Blue tags with shadows\n  - 🟠 **Deprecated**: Orange tags with shadows\n  - 🟣 **Parse**: Purple tags with shadows\n- **Collapsible Sections**: Organized sections with persistent state\n- **Modal Error Details**: Full error content in beautiful modal windows\n\n### 🔧 **Developer Tools**\n- **One-click File Path Copying**: Quick access to error file locations\n- **Error Hash Generation**: Unique identification for each error type\n- **JSON Export/Import**: Solved errors data persistence\n- **Recent Errors Filter**: 24-hour error view for immediate issues\n- **Critical Error Highlighting**: Special treatment for vendor/library errors\n\n### 📈 **Analytics \u0026 Insights**\n- **Error Statistics**: Real-time counts of different error types\n- **Progress Tracking**: Visual indicators for team productivity\n- **Time-based Filtering**: Focus on recent errors that need attention\n- **Reoccurrence Alerts**: Immediate notification when solved errors return\n\n## 🚀 Quick Installation\n\n### Method 1: One-Click Installer (Recommended)\n\nCreate a file called `install.php` in your web root and run it:\n\n```php\n\u003c?php\n// PHP Error Log Viewer Installer\n$repo = 'https://github.com/0xAhmadYousuf/PHP-Error-Log-Viewer/archive/refs/heads/main.zip';\n$zip = 'error-viewer.zip';\n$target = './error-viewer/';\n\necho \"📥 Downloading PHP Error Log Viewer...\\n\";\nfile_put_contents($zip, file_get_contents($repo));\n\n$za = new ZipArchive();\nif ($za-\u003eopen($zip) === TRUE) {\n    $za-\u003eextractTo('./');\n    $za-\u003eclose();\n    rename('./PHP-Error-Log-Viewer-main/src', $target);\n    unlink($zip);\n    rmdir('./PHP-Error-Log-Viewer-main');\n    echo \"✅ Installation complete! Visit: \" . $_SERVER['HTTP_HOST'] . \"/error-viewer/\\n\";\n} else {\n    echo \"❌ Installation failed. Please download manually.\\n\";\n}\n?\u003e\n```\n\n### Method 2: Manual Installation\n\n1. **Download the repository**:\n   ```bash\n   git clone https://github.com/0xAhmadYousuf/PHP-Error-Log-Viewer.git\n   ```\n\n2. **Copy files to your web directory**:\n   ```bash\n   cp -r PHP-Error-Log-Viewer/src/* /path/to/your/webroot/error-viewer/\n   ```\n\n3. **Set permissions**:\n   ```bash\n   chmod 755 /path/to/your/webroot/error-viewer/\n   chmod 666 /path/to/your/webroot/error-viewer/solved_errors.json\n   ```\n\n4. **Access the viewer**:\n   Navigate to `http://yourdomain.com/error-viewer/`\n\n## 📁 File Structure\n\n```\nsrc/\n├── index.php              # Main application file\n├── template.html          # UI template with themes and styling\n├── update_error_status.php # API endpoint for marking errors as solved\n├── solved_errors.json     # Persistent storage for solved errors\n└── error_log              # Your PHP error log file\n```\n\n## 🛠️ Configuration\n\n### Basic Setup\n1. **Error Log Path**: Place your `error_log` file in the same directory as `index.php`\n2. **Permissions**: Ensure web server can read `error_log` and write to `solved_errors.json`\n3. **Developer Name**: First-time visitors will be prompted to enter their name for tracking\n\n### Advanced Configuration\n- **Theme Persistence**: Uses cookies to remember user preferences\n- **Section State**: Remembers collapsed/expanded sections\n- **Developer Identity**: Persistent developer name storage\n- **Error Resolution**: JSON-based solved error tracking\n\n## 🎯 Usage Guide\n\n### 1. **Viewing Errors**\n- **Recent Errors**: View errors from the last 24 hours\n- **Error Groups**: Browse errors organized by file\n- **Critical Errors**: Focus on vendor/library issues\n- **Full Error Details**: Click \"👁️ View Full\" for complete error information\n\n### 2. **Tracking Progress**\n- **Mark as Solved**: Click ✓ button next to errors or files\n- **Progress Bars**: Visual indicators show solved vs unsolved errors\n- **Master Overview**: Dashboard showing overall project health\n\n### 3. **Managing Reoccurrences**\n- **Automatic Detection**: System detects when solved errors occur again\n- **Reoccurrence Details**: Click ⚠️ badges for solve history\n- **Re-marking**: Easily re-mark reoccurred errors as solved\n\n### 4. **Customization**\n- **Theme Toggle**: Switch between dark/light modes\n- **Section Management**: Collapse/expand sections as needed\n- **Developer Identity**: Change your name for proper attribution\n\n## 🔒 Security Features\n\n- **Input Sanitization**: All user inputs are properly sanitized\n- **XSS Protection**: HTML entities encoding for all dynamic content\n- **Safe File Operations**: Secure file read/write operations\n- **Cookie Security**: Secure cookie handling for preferences\n\n## 🌟 Screenshots\n\n### Dark Theme with Progress Bars\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"assets/Screenshot_002.png\" alt=\"Screenshot_002\" style=\"width:100%;max-width:900px;\"/\u003e\n\u003c/p\u003e\n\n### Light Theme Dashboard\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"assets/Screenshot_003.png\" alt=\"Screenshot_003\" style=\"width:100%;max-width:900px;\"/\u003e\n\u003c/p\u003e\n\n### Error Details Modal\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"assets/Screenshot_004.png\" alt=\"Screenshot_004\" style=\"width:100%;max-width:900px;\"/\u003e\n\u003c/p\u003e\n\n## 🤝 Contributing\n\nWe welcome contributions! Please see our [Contributing Guidelines](CONTRIBUTING.md) for details.\n\n### Development Setup\n1. Fork the repository\n2. Create a feature branch: `git checkout -b feature/amazing-feature`\n3. Commit your changes: `git commit -m 'Add amazing feature'`\n4. Push to the branch: `git push origin feature/amazing-feature`\n5. Open a Pull Request\n\n## 📝 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## 👨‍💻 Author\n\n**Ahmad Yousuf** - [0xAhmadYousuf](https://github.com/0xAhmadYousuf)\n- Website: [0xAhmadYousuf.com](https://0xAhmadYousuf.com)\n- Twitter: [@0xAhmadYousuf](https://twitter.com/0xAhmadYousuf)\n\n## 🚀 Support\n\nIf you found this project helpful, please consider:\n- ⭐ Starring the repository\n- 🐛 Reporting bugs\n- 💡 Suggesting new features\n- 📢 Sharing with other developers\n\n## 📋 Requirements\n\n- **PHP 8.0+** (uses match expressions and modern PHP features)\n- **Web Server** (Apache, Nginx, or built-in PHP server)\n- **JSON Extension** (usually enabled by default)\n- **File System Access** (read/write permissions)\n\n## 🔧 Troubleshooting\n\n### Common Issues\n\n**Q: Errors not showing up?**\nA: Ensure your `error_log` file is in the same directory and has proper read permissions.\n\n**Q: Can't mark errors as solved?**\nA: Check that `solved_errors.json` has write permissions (chmod 666).\n\n**Q: Theme not persisting?**\nA: Verify that cookies are enabled in your browser.\n\n**Q: Progress bars not updating?**\nA: Refresh the page after marking errors as solved.\n\n### Performance Tips\n\n- **Large Log Files**: For logs over 10MB, consider rotating or archiving old entries\n- **Memory Usage**: PHP memory limit may need adjustment for very large error logs\n- **Caching**: Browser caching is optimized for static assets\n\n## 🔄 Changelog\n\n### Version 2.0.0 (Latest)\n- ✨ Added segmented progress bars with diagonal stripes\n- 🎨 Implemented color-coded error type tags\n- 🌙 Enhanced dark mode with colored shadows\n- 🔍 Added reoccurrence detection and tracking\n- 📊 Master progress overview dashboard\n- 🔧 Improved error parsing and categorization\n\n### Version 1.0.0\n- 🎉 Initial release with basic error viewing\n- 🎨 Dark/light theme support\n- 📝 Error marking and tracking\n- 📱 Responsive design\n\n---\n\n\u003cdiv align=\"center\"\u003e\n  \u003cstrong\u003eMade with ❤️ by \u003ca href=\"https://0xAhmadYousuf.com\"\u003eAhmad Yousuf\u003c/a\u003e\u003c/strong\u003e\n  \u003cbr\u003e\n  \u003csub\u003e🚀 Helping developers build better PHP applications\u003c/sub\u003e\n\u003c/div\u003e\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F0xahmadyousuf%2Fphp-error-log-viewer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F0xahmadyousuf%2Fphp-error-log-viewer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F0xahmadyousuf%2Fphp-error-log-viewer/lists"}