Development Journey
The idea for this extension was born out of our own experiences with error management in TYPO3. We noticed a gap in the available tools and decided to create a solution that would make error handling more efficient. More details about it could be found in our previous article about improving the TYPO3 error log.
Our team consisted of three dedicated members who collaborated closely on the development of this extension:
- Serhii Voronov: As the originator of the idea, Serhii had the deepest understanding of the product and implemented the main functionalities.
- Andrii Pozdieiev: Andrii assisted with the extension settings, AI integration, and various minor features, in addition to writing the documentation.
- Rostyslav Matviiv: Rostyslav managed the project, handled communication, and conducted code reviews.
All three of us were actively involved in the testing process to ensure the extension's quality and reliability.
During the planning and design phase, we focused on creating a user-friendly interface which utilizes the native TYPO3 backend blocks and ensuring that the extension could be easily integrated into existing TYPO3 setups.
Our development process included several key milestones, such as:
- Initial concept, prototyping and design.
- Preparing the basic functionality — handlers, logger, etc.
- Error collecting (database) and grouping functionality, backend module.
- Notification system (emails and Slack), suggestions (AI), smaller features.
- Finalizing, tests, possible improvements.
Before starting the development we sought feedback from the TYPO3 community, which helped us refine and improve the future extension.
We are deeply grateful for the invaluable input from Mathias Bolt Lesniak, Peter Kraume, and Manuel Selbach. Their insights significantly contributed to the development and refinement of the extension. Additionally, we extend our heartfelt thanks to Daniel Siepmann for his detailed feedback on all the planned features and to Ingo Schmitt for his unwavering support and effective communication throughout the project.
Challenges and Solutions
While Serhii and Andrii used different environments for development, we discovered variations in the behavior of some extension parts. This helped us uncover several subtle issues. Additionally, we found that in certain environments, the arguments for stack trace are not passed to the error handler by default. This discovery was crucial, and we made sure to highlight it in the documentation.
Although the lowest current LTS version of TYPO3 is v11.5, we initially targeted our development for this version, intending to make minor adjustments to support both v11.5 and v12.4. However, we discovered significant differences between these versions, leading us to develop two separate versions of the extension for each TYPO3 version. On the bright side, this approach allowed us to implement more modern techniques for v12.4, such as using a message bus and adopting PHP 8.1 syntax.
Initially, we were skeptical about the AI assistance feature, concerned that it might not be as useful or effective as hoped. However, with well-crafted and detailed prompts, we achieved impressive results using the OpenAI GPT models, proving the feature to be highly beneficial.
Use Cases and Benefits
This extension is particularly useful in scenarios where quick error resolution is critical. For instance:
Use Case 1: Enhanced Development Workflow
Scenario
A TYPO3 development team is working on a new website project with a tight deadline. Rapid identification and resolution of errors are critical to maintain the development pace and ensure the project's timely completion.
How the Extension Helps
- Detailed Error Information: When an error occurs, the extension provides comprehensive details, including the file, line number, and stack trace. This allows developers to quickly pinpoint the root cause of the issue.
- Grouping Similar Errors: Similar errors are grouped together, making it easier for the team to identify patterns and recurring issues. This helps in addressing underlying problems that may not be immediately obvious.
- AI Assistance: The AI feature suggests possible solutions based on the error context, saving developers time spent on research and trial-and-error.
- Notifications: Immediate email and Slack notifications ensure that all team members are aware of critical errors as they happen, facilitating prompt action.
Benefits
This use case showcases how the extension streamlines the error resolution process, enhances team collaboration, and helps maintain the development schedule.
Use Case 2: Proactive Production Monitoring
Scenario
A company running a high-traffic TYPO3-based site needs to ensure maximum uptime and a seamless user experience. Any errors in the production environment could lead to lost sales and damage to the brand’s reputation.
How the Extension Helps
- Real-time Monitoring: The extension continuously monitors the site for errors, providing real-time alerts when issues arise.
- Notifications and Reports: Critical errors trigger instant notifications to the support team via email and Slack, allowing for swift intervention. Regular reports summarize error trends, helping the team identify and mitigate potential problems before they escalate.
- Grouping and Analysis: Grouped errors provide insights into common issues that may need a more permanent fix or optimization.
- AI Assistance: The AI feature offers potential fixes for common errors, helping the support team resolve issues quickly even if they are not familiar with the specific problem.
Benefits
This use case demonstrates how the extension helps maintain high availability and performance of the production site, ensuring a positive user experience and protecting revenue.
Use Case 3: Efficient Quality Assurance (QA) Processes
Scenario
A QA team is responsible for ensuring the quality and stability of multiple TYPO3-based projects before they go live. The team needs a reliable way to track and resolve errors found during testing.
How the Extension Helps
- Comprehensive Error Tracking: During testing, all errors are logged with detailed information, allowing QA engineers to document and report issues accurately.
- Grouping and Prioritization: Errors are grouped by similarity, enabling the team to prioritize and focus on the most critical and recurring issues first.
- AI Assistance: The AI suggests possible solutions and provides additional context for each error, aiding in faster resolution and deeper understanding of the issues.
- Integration with Communication Tools: Notifications and reports are sent to the QA team’s communication channels, ensuring that all members are aware of the current state of the project and any outstanding issues.
Benefits
This use case highlights how the extension enhances the QA process, ensuring thorough testing and efficient resolution of issues, leading to higher-quality releases.
Try it Out and Help Make it Better
We invite you to try out the Advanced Error Log extension and provide your feedback. You can find it in the TYPO3 Extension Repository and on Packagist. Check out the repository on GitHub and join the discussion in the #ext-error_log channel in Slack. Help us make this extension even better.