Feature Wiki
Tabs
Direct Access to Error Log Files
Pagina overzicht
[Verbergen]- 1 Initial Problem
- 2 Conceptual Summary
- 3 User Interface Modifications
- 4 Additional Information
- 4.1 Involved Authorities
- 4.2 Technical Aspects
- 4.3 Privacy
- 4.4 Security
- 4.5 Contact
- 4.6 Funding
- 5 Discussion
- 6 Implementation
- 6.1 Description and Screenshots
- 6.2 Test Cases
- 6.3 Privacy
- 6.4 Approval
1 Initial Problem
It is often unnecessarily complicated for the support team to access error log files.
Also, the path to the error log files is not always accessible to the people who administrate the platform.
2 Conceptual Summary
A setting should make it possible for users with the global role ‘Administrator’ to be able to access this log file from ILIAS directly after an error has occurred and when a corresponding error message with error code is displayed.
For users with this role, a button is added to the message box to enable the download. (See Chapter 3.2)
The Button ‘Back to Repository’ is also transferred to the Message Box and changed functional to 'Back to Personal Starting Point'. This is more predictable in regard to access. Users who are not logged in are directed to the login screen.
The other Contents of the Message Box (Note, Log File Code and, depending on the configuration, the eMail Address of a potentially helpful Person) are not changed or differentiated by Role.
The administrative setting is activated by default.
3 User Interface Modifications
3.1 List of Affected Views
- Screens with an Error Message and Errol Log File Code
3.2 User Interface Details
Message Box
Form in Administration
3.3 New User Interface Concepts
Nothing new.
3.4 Accessibility Implications
Nothing specific. We use only Kitchen Sink Elements.
4 Additional Information
4.1 Involved Authorities
- Authority to Sign off on Conceptual Changes: Jansen, Michael [mjansen] & Klees, Richard [rklees] for
Init
- Authority to Sign off Code Changes: Jansen, Michael [mjansen] & Klees, Richard [rklees] for
Init
If this request is related to multiple components, please list both authorities for all related components.
4.2 Technical Aspects
When ILIAS runs in productive mode, errors are processed by \ilErrorHandling::defaultHandler
. This handler uses the configured CallbackHandler
to:
- Generate the log file containing detailed error information (error message, PHP call stack, etc.)
- Generate the legacy HTML message with a button for further user interaction.
if ($DIC->isDependencyAvailable('ui') && isset($DIC['tpl']) && $DIC->isDependencyAvailable('ctrl')) {
$DIC->ui()->mainTemplate()->setOnScreenMessage('failure', $message, true);
$DIC->ctrl()->redirectToURL('error.php');
} else {
ilSession::set('failure', $message);
header('Location: error.php');
exit;
}
To improve the user experience by using the KS/UI framework, specifically the MessageBox > Error
component, the error UI should be rendered in error.php
(or in scripts it includes). To enable this, key data - such as the error message, the path to the generated error log file, and optionally its content - must be persisted temporarily across the HTTP redirect that occurs after the error is logged.
This temporary persistence could be achieved via:
- A session variable
- A one-time token referencing a temporary file or cache entry
- Another secure and ephemeral mechanism
Because the content of the log file contain sensitive information, it must be ensured that the user can access only the specific error log file generated for their request. Any possibility of:
- Accessing arbitrary files
- Reusing links/tokens across sessions
...must be explicitly prevented. Proper validation, access control, and/or file/path sanitization to mitigate these risks must be ensured.
4.3 Privacy
Data that is provided as part of an error report is thus potentially accessible to all administrators of the platform.
4.4 Security
None.
4.5 Contact
Person to be contacted in case of questions about the feature or for funding offers: Samoila, Oliver [oliver.samoila]
4.6 Funding
Funding status and funding parties are listed in the block 'Status of Feature' in the right column of this page.
If you are interested to give funding for this feature, please get into contact with the person mentioned above as 'Contact'.
5 Discussion
6 Implementation
Feature has been implemented by {Please add related profile link of this person}
6.1 Description and Screenshots
{ Description of the final implementation and screenshots if possible. }
6.2 Test Cases
Test cases completed at {date} by {user}
- {Test case number linked to Testrail} : {test case title}
6.3 Privacy
Information in privacy.md of component: updated at {date} by {user} | no change required
6.4 Approval
Approved at {date} by {user}.
Laatste wijziging: 5. Mei 2025, 14:31, Jansen, Michael [mjansen]